Bmob 注册用户 上传图片



activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.moliying.mly_bmob.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="add"
        android:id="@+id/button_add"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="update"
        android:id="@+id/button2_update"
        android:layout_below="@+id/button_add"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/button_add" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="query"
        android:id="@+id/button3_query"
        android:layout_below="@+id/button2_update"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/button2_update" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="delete"
        android:id="@+id/button4_delete"
        android:layout_below="@+id/button3_query"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/button3_query" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="注册"
        android:id="@+id/button_openReg"
        android:layout_alignParentBottom="true"
        android:layout_alignEnd="@+id/button4_delete" />
</RelativeLayout>



activity_person.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.moliying.mly_bmob.PersonActivity">

</RelativeLayout>



activity_register.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.moliying.mly_bmob.RegisterActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text=""
        android:hint="用户名"
        android:ems="10"
        android:id="@+id/editText_username"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberPassword"
        android:ems="10"
        android:hint="密码"
        android:id="@+id/editText2_password"
        android:layout_below="@+id/editText_username"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/editText_username" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:hint="邮箱"
        android:id="@+id/editText_email"
        android:layout_below="@+id/editText2_password"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/editText2_password" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:ems="10"
        android:hint="手机号"
        android:id="@+id/editText_phone"
        android:layout_below="@+id/editText_email"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/editText_email" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="浏览"
        android:id="@+id/button_browser"
        android:layout_below="@+id/editText_phone"
        android:layout_alignParentEnd="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText_icon"
        android:hint="请选择一个图片"
        android:layout_alignTop="@+id/button_browser"
        android:layout_alignParentStart="true"
        android:layout_toStartOf="@+id/button_browser" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="注册"
        android:id="@+id/button2_reg"
        android:layout_below="@+id/button_browser"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="102dp" />
</RelativeLayout>


AndroidManifest.xml   权限

 <!-- 允许联网 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 获取wifi网络状态的信息 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- 获取sd卡写的权限,用于文件上传和下载 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 允许读取手机状态 用于创建BmobInstallation -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />


Person.java     User.java      PersonActivity.java       RegisterActivity.java       MainActivity.java



Person.java 


import cn.bmob.v3.BmobObject;


public class Person extends BmobObject{
    private String name;
    private String address;

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", address='" + address + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

User.java    


import cn.bmob.v3.BmobUser;
import cn.bmob.v3.datatype.BmobFile;


public class User extends BmobUser {

    private BmobFile icon;

    public BmobFile getIcon() {
        return icon;
    }

    public void setIcon(BmobFile icon) {
        this.icon = icon;
    }
}


PersonActivity.java     


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class PersonActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_person);
    }
}

MainActivity.java


import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.util.List;

import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.listener.DeleteListener;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UpdateListener;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button button_add;
    private Button button_update;
    private Button button_query;
    private Button button_delete;
    private Button button_reg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //第一:默认初始化
        Bmob.initialize(this, "57cadb7b6e6be53463d6c87eec14e096");
        initView();
    }

    private void initView() {
        button_add = (Button) findViewById(R.id.button_add);
        button_update = (Button) findViewById(R.id.button2_update);
        button_query = (Button) findViewById(R.id.button3_query);
        button_delete = (Button) findViewById(R.id.button4_delete);
        button_reg = (Button) findViewById(R.id.button_openReg);
        button_add.setOnClickListener(this);
        button_update.setOnClickListener(this);
        button_query.setOnClickListener(this);
        button_delete.setOnClickListener(this);
        button_reg.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button_add:
                addData();
                break;
            case R.id.button2_update:
                updateData();
                break;
            case R.id.button3_query:
                queryData();
                break;
            case R.id.button4_delete:
                deleteData();
                break;
            case R.id.button_openReg:
                openRegisterUI();
                break;
        }
    }

    //打开注册
    private void openRegisterUI() {
        Intent intent = new Intent(this,RegisterActivity.class);
        startActivity(intent);
    }

    private void deleteData() {
        Person p = new Person();
        p.delete(this, "7d688aea0d", new DeleteListener() {
            @Override
            public void onSuccess() {
                toast("delete success");
            }

            @Override
            public void onFailure(int i, String s) {
                toast(s);
            }
        });
    }

    private void queryData() {
        BmobQuery<Person> query = new BmobQuery<>();
        query.setLimit(10);
        query.setSkip(0);
        query.findObjects(this, new FindListener<Person>() {
            @Override
            public void onSuccess(List<Person> list) {
                toast(list.toString());
            }
            @Override
            public void onError(int i, String s) {
                toast(s);
            }
        });
    }

    private void updateData() {
        Person p = new Person();
        p.setName("Tom");
        p.setAddress("tangshan");
        p.update(this, "7d688aea0d", new UpdateListener() {
            @Override
            public void onSuccess() {
                toast("update success");
            }

            @Override
            public void onFailure(int i, String s) {
                toast("update error:"+s);
            }
        });
    }

    private void addData() {
        Person p = new Person();
        p.setName("jack");
        p.setAddress("beijing");
        p.save(this, new SaveListener() {
            @Override
            public void onSuccess() {
                toast("保存成功");
            }
            @Override
            public void onFailure(int i, String s) {
                toast(s);
            }
        });
    }

    private void toast(String s) {
        Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
    }

}


RegisterActivity.java      


import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.File;

import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UploadFileListener;

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {

    private static final int GET_IMAGE_CODE = 0X1;

    private EditText editText_username,editText_password,editText_email,editText_phone,editText_icon;
    private Button button_browser,button_reg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        initView();

    }

    private void initView() {
        editText_username = (EditText) findViewById(R.id.editText_username);
        editText_password = (EditText) findViewById(R.id.editText2_password);
        editText_email = (EditText) findViewById(R.id.editText_email);
        editText_phone = (EditText) findViewById(R.id.editText_phone);
        editText_icon = (EditText) findViewById(R.id.editText_icon);
        button_browser = (Button) findViewById(R.id.button_browser);
        button_reg = (Button) findViewById(R.id.button2_reg);
        button_browser.setOnClickListener(this);
        button_reg.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button2_reg:
                registerUser();
                break;
            case R.id.button_browser:
               <span style="font-size:18px;"> browserImage();   <span style="color:#FF0000;"> //点击浏览按键,导入图片的操作</span></span>
                break;
        }
    }

    private void registerUser() {
        final String username = editText_username.getText().toString();
        final String password = editText_password.getText().toString();
        final String email = editText_email.getText().toString();
        String icon = editText_icon.getText().toString();
        final String phone = editText_phone.getText().toString();
        if(TextUtils.isEmpty(icon)){
            Toast.makeText(RegisterActivity.this, "请选择一个图片", Toast.LENGTH_SHORT).show();
            return;
        }
        final BmobFile bmobFile = new BmobFile(new File(icon));
        bmobFile.upload(this, new UploadFileListener() {
            @Override
            public void onSuccess() {
                User user = new User();
                user.setUsername(username);
                user.setPassword(password);
                user.setMobilePhoneNumber(phone);
                user.setEmail(email);
                user.setIcon(bmobFile);
                user.signUp(RegisterActivity.this, new SaveListener() {
                    @Override
                    public void onSuccess() {
                        Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
                    }
                    @Override
                    public void onFailure(int i, String s) {
                        Toast.makeText(RegisterActivity.this, s, Toast.LENGTH_SHORT).show();
                    }
                });
            }
            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(RegisterActivity.this, "图片上传失败:"+s, Toast.LENGTH_SHORT).show();
            }
        });
    }


<span style="font-size:18px;color:#FF0000;">//从内存卡中选择一张图片</span>
    private void browserImage() {
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent,GET_IMAGE_CODE);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(RESULT_OK==resultCode && GET_IMAGE_CODE==requestCode){
            Uri uri = data.getData();
                Log.i("imageUri",uri.toString());
                Cursor c = getContentResolver().query(uri,new String[]{MediaStore.Images.ImageColumns.DATA},null,null,null);
                if(c.moveToFirst()){
                    String path = c.getString(0);
                    editText_icon.setText(path);
            }
            c.close();
        }
    }
}



  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值