
由于这个模块内容较多,篇幅较长,请耐心阅读。
个人资料模块分为两个部分
- [x] 个人资料
- [x] 资料修改
一、个人资料
1、个人资料界面
(1)、创建个人资料界面
在com.buxuegu.activity包中创建一个java类,命名为UserInfoActivity。在res/layout文件夹下创建一个布局文件,命名为activity_user_info。
(2)、界面代码——activity_user_info.xml
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:background="@android:color/white"> 7 <include layout="@layout/main_title_bar"/> 8 <RelativeLayout 9 android:id="@+id/rl_head" 10 android:layout_width="fill_parent" 11 android:layout_height="60dp" 12 android:layout_marginLeft="15dp" 13 android:layout_marginRight="15dp"> 14 <TextView 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" 17 android:layout_centerVertical="true" 18 android:text="头像" 19 android:textColor="#000000" 20 android:textSize="16sp" /> 21 <ImageView 22 android:id="@+id/iv_head_icon" 23 android:layout_width="40dp" 24 android:layout_height="40dp" 25 android:layout_alignParentRight="true" 26 android:layout_centerVertical="true" 27 android:src="@drawable/default_icon"/> 28 </RelativeLayout> 29 <View 30 android:layout_width="fill_parent" 31 android:layout_height="1dp" 32 android:background="#E4E4E4"/> 33 <RelativeLayout 34 android:id="@+id/rl_account" 35 android:layout_width="fill_parent" 36 android:layout_height="60dp" 37 android:layout_marginLeft="15dp" 38 android:layout_marginRight="15dp"> 39 <TextView 40 android:layout_width="wrap_content" 41 android:layout_height="wrap_content" 42 android:layout_centerVertical="true" 43 android:text="用户名" 44 android:textColor="#000000" 45 android:textSize="16sp"/> 46 <TextView 47 android:id="@+id/tv_user_name" 48 android:layout_width="wrap_content" 49 android:layout_height="wrap_content" 50 android:layout_alignParentRight="true" 51 android:layout_centerVertical="true" 52 android:layout_marginRight="5dp" 53 android:text="account" 54 android:textColor="#a3a3a3" 55 android:textSize="14sp"/> 56 </RelativeLayout> 57 <View 58 android:layout_width="fill_parent" 59 android:layout_height="1dp" 60 android:background="#E4E4E4"/> 61 <RelativeLayout 62 android:id="@+id/rl_nickName" 63 android:layout_width="fill_parent" 64 android:layout_height="60dp" 65 android:layout_marginLeft="15dp" 66 android:layout_marginRight="15dp"> 67 <TextView 68 android:layout_width="wrap_content" 69 android:layout_height="wrap_content" 70 android:layout_centerVertical="true" 71 android:text="昵称" 72 android:textColor="#000000" 73 android:textSize="16sp"/> 74 <TextView 75 android:id="@+id/tv_nickName" 76 android:layout_width="wrap_content" 77 android:layout_height="wrap_content" 78 android:layout_alignParentRight="true" 79 android:layout_centerVertical="true" 80 android:layout_marginRight="5dp" 81 android:singleLine="true" 82 android:text="昵称" 83 android:textColor="#a3a3a3" 84 android:textSize="14sp"/> 85 </RelativeLayout> 86 <View 87 android:layout_width="fill_parent" 88 android:layout_height="1dp" 89 android:background="#E4E4E4"/> 90 <RelativeLayout 91 android:id="@+id/rl_sex" 92 android:layout_width="fill_parent" 93 android:layout_height="60dp" 94 android:layout_marginLeft="15dp" 95 android:layout_marginRight="15dp"> 96 <TextView 97 android:layout_width="wrap_content" 98 android:layout_height="wrap_content" 99 android:layout_centerVertical="true" 100 android:text="性别" 101 android:textColor="#000000" 102 android:textSize="16sp"/> 103 <TextView 104 android:id="@+id/tv_sex" 105 android:layout_width="wrap_content" 106 android:layout_height="wrap_content" 107 android:layout_alignParentRight="true" 108 android:layout_centerVertical="true" 109 android:layout_marginRight="5dp" 110 android:text="女" 111 android:textColor="#a3a3a3" 112 android:textSize="14sp"/> 113 </RelativeLayout> 114 <View 115 android:layout_width="fill_parent" 116 android:layout_height="1dp" 117 android:background="#E4E4E4"/> 118 <RelativeLayout 119 android:id="@+id/rl_signature" 120 android:layout_width="fill_parent" 121 android:layout_height="60dp" 122 android:layout_marginLeft="15dp" 123 android:layout_marginRight="15dp"> 124 <TextView 125 android:layout_width="wrap_content" 126 android:layout_height="wrap_content" 127 android:layout_centerVertical="true" 128 android:singleLine="true" 129 android:text="签名" 130 android:textColor="#000000" 131 android:textSize="16sp"/> 132 <TextView 133 android:id="@+id/tv_signature" 134 android:layout_width="wrap_content" 135 android:layout_height="wrap_content" 136 android:layout_alignParentRight="true" 137 android:layout_centerVertical="true" 138 android:layout_marginRight="5dp" 139 android:textColor="#a3a3a3" 140 android:textSize="14sp"/> 141 </RelativeLayout> 142 <View 143 android:layout_width="fill_parent" 144 android:layout_height="1dp" 145 android:background="#E4E4E4"/> 146</LinearLayout>
2、创建UserBean
选中com.boxuegu包,新建一个bean包。在bean包中创建一个Java类,命名为UserBean。代码如下
1package com.boxuegu.bean; 2 3public class UserBean { 4 public String userName; //用户名 5 public String nickName; //昵称 6 public String sex; //性别 7 public String signature; //签名 8}
3、创建用户信息表
选中com.boxuegu包,新建一个sqlite包。在sqlite包中创建一个Java类,命名为QLiteHelper。因为SQLiteHelper类继承SQLiteOpenHelper类,需要修改主类。代码如下
1package com.boxuegu.sqlite; 2 3import android.content.Context; 4import android.database.sqlite.SQLiteDatabase; 5import android.database.sqlite.SQLiteOpenHelper; 6 7//SQLiteHelper类继承自SQLiteOpenHelper类 8public class SQLiteHelper extends SQLiteOpenHelper { 9 10 public static final int DB_VERSION = 1; //数据库的版本 11 public static final String DB_NAME = "wordpress.db"; //数据库的名称 12 public static final String U_USERINFO = "userinfo"; //个人资料 13 public SQLiteHelper(Context context){ 14 super(context,DB_NAME,null,DB_VERSION); 15 } 16 17 //创建数据库 18 @Override 19 public void onCreate(SQLiteDatabase db){ 20 //创建用户信息表 21 db.execSQL("CREATE TABLE IF NOT EXISTS " + U_USERINFO + "( " + 22 "_id INTEGER PRIMARY KEY AUTOINCREMENT, " 23 + "userName VARCHAR," //用户名 24 + "nickName VARCHAR," //昵称 25 + "sex VARCHAR," //性别 26 + "signature VARCHAR" //签名 27 + ")" ); 28 } 29 30 //数据库升级 版本号增加 升级调用此方法 31 @Override 32 public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){ 33 db.execSQL("DROP TABLE IF NOT EXISTS " + U_USERINFO); 34 onCreate(db); 35 36 } 37}
4、创建DBUtils工具类
选中com.boxuegu.utils包,创建一个Java类,命名为BUtilsr。用于操作数据库。代码如下
1package com.boxuegu.utils; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.database.Cursor; 6import android.database.sqlite.SQLiteDatabase; 7import com.boxuegu.bean.UserBean; 8import com.boxuegu.sqlite.SQLiteHelper; 9 10public class DBUtils { 11 private static SQLiteHelper helper; 12 private static SQLiteDatabase db; 13 private static DBUtils instance = null; 14 public DBUtils(Context context) { 15 helper = new SQLiteHelper(context); 16 //getWritableDatabase();可写的数据库对象 17 db = helper.getWritableDatabase(); 18 } 19 20 public static DBUtils getInstance(Context context) { 21 if (instance == null) { 22 instance = new DBUtils(context); 23 } 24 return instance; 25 } 26 27 //保存用户个人资料信息 28 public void saveUserInfo(UserBean bean) { 29 ContentValues cv = new ContentValues(); 30 cv.put("userName", bean.userName); 31 cv.put("nickName", bean.nickName); 32 cv.put("sex", bean.sex); 33 cv.put("signature", bean.signature); 34 db.insert(SQLiteHelper.U_USERINFO, null, cv); 35 } 36 37 //获取个人资料信息 38 public UserBean getUserInfo(String userName) { 39 //获取对应用户名的个人信息 40 String sql = "SELECT * FROM " + SQLiteHelper.U_USERINFO + " WHERE userName=?"; 41 Cursor cursor = db.rawQuery(sql,new String[]{userName}); 42 UserBean bean = null; 43 while (cursor.moveToNext()){ 44 bean = new UserBean(); 45 bean.userName=cursor.getString(cursor.getColumnIndex("userName")); 46 bean.nickName=cursor.getString(cursor.getColumnIndex("nickName")); 47 bean.sex=cursor.getString(cursor.getColumnIndex("sex")); 48 bean.signature=cursor.getString(cursor.getColumnIndex("signature")); 49 } 50 cursor.close(); 51 return bean; 52 } 53 54 //修改资料 55 public void updateUserInfo(String key, String value, String userName) { 56 ContentValues cv = new ContentValues(); 57 cv.put(key, value); 58 db.update(SQLiteHelper.U_USERINFO, cv, "userName = ?", new String[]{userName}); 59 } 60 61}
5、个人资料界面逻辑代码——UserInfoActivity.java
1package com.boxuegu.activity; 2 3import android.content.DialogInterface; 4import android.content.Intent; 5import android.content.pm.ActivityInfo; 6import android.graphics.Color; 7import android.support.v7.app.AlertDialog; 8import android.support.v7.app.AppCompatActivity; 9import android.text.TextUtils; 10import android.os.Bundle; 11import android.view.View; 12import android.widget.RelativeLayout; 13import android.widget.TextView; 14import android.widget.Toast; 15import com.boxuegu.R; 16import com.boxuegu.bean.UserBean; 17import com.boxuegu.utils.AnalysisUtils; 18import com.boxuegu.utils.DBUtils; 19 20public class UserInfoActivity extends AppCompatActivity implements View.OnClickListener { 21 22 private TextView tv_user_name; 23 private TextView tv_signature; 24 private RelativeLayout rl_signature; 25 private TextView tv_sex; 26 private RelativeLayout rl_sex; 27 private TextView tv_nickName; 28 private RelativeLayout rl_nickName; 29 private TextView tv_back; 30 private TextView tv_main_title; 31 private RelativeLayout rl_title_bar; 32 private String spUserName; 33 34 @Override 35 protected void onCreate(Bundle savedInstanceState) { 36 super.onCreate(savedInstanceState); 37 setContentView(R.layout.activity_user_info); 38 //设置界面为竖屏 39 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 40 spUserName = AnalysisUtils.readLoginUserName(this); 41 init(); 42 initData(); 43 setListener(); 44 } 45 46 //初始化控件 47 private void init() { 48 tv_back = (TextView) findViewById(R.id.tv_back); 49 tv_main_title = (TextView) findViewById(R.id.tv_main_title); 50 tv_main_title.setText("个人资料"); 51 rl_title_bar = (RelativeLayout) findViewById(R.id.title_bar); 52 rl_title_bar.setBackgroundColor(Color.parseColor("##FF9900")); 53 rl_nickName = (RelativeLayout) findViewById(R.id.rl_nickName); 54 tv_nickName = (TextView) findViewById(R.id.tv_nickName); 55 rl_sex = (RelativeLayout) findViewById(R.id.rl_sex); 56 tv_sex = (TextView) findViewById(R.id.tv_sex); 57 rl_signature = (RelativeLayout) findViewById(R.id.rl_signature); 58 tv_signature = (TextView) findViewById(R.id.tv_signature); 59 tv_user_name = (TextView) findViewById(R.id.tv_user_name); 60 61 62 } 63 64 //从数据库中获取数据 65 private void initData(){ 66 UserBean bean = null; 67 bean = DBUtils.getInstance(this).getUserInfo(spUserName); 68 //首先判断一下数据库中是否有数据 69 if(bean ==null){ 70 bean = new UserBean(); 71 bean.userName = spUserName; //用户名不可以修改 72 bean.nickName = "这个是你的昵称"; 73 //默认为男 74 bean.sex = "男"; 75 bean.signature = "这个是你的签名"; 76 //保存用户信息到数据库 77 DBUtils.getInstance(this).saveUserInfo(bean); 78 } 79 setValue(bean); 80 } 81 82 //为界面控件设置值 83 public void setValue(UserBean bean) { 84 tv_nickName.setText(bean.nickName); 85 tv_sex.setText(bean.sex); 86 tv_signature.setText(bean.signature); 87 tv_user_name.setText(bean.userName); 88 } 89 90 //设置界面的点击监听事件 91 private void setListener() { 92 tv_back.setOnClickListener(this); 93 rl_nickName.setOnClickListener(this); 94 rl_sex.setOnClickListener(this); 95 rl_signature.setOnClickListener(this); 96 } 97 98 //控件的点击事件 99 @Override 100 public void onClick(View v) { 101 switch (v.getId()){ 102 //返回键的点击事件 103 case R.id.tv_back: 104 this.finish(); 105 break; 106 107 //昵称的点击事件 108 case R.id.rl_nickName: 109 break; 110 111 //性别的点击事件 112 case R.id.rl_sex: 113 String sex = tv_sex.getText().toString(); 114 sexDialog(sex); 115 break; 116 117 //签名的点击事件 118 case R.id.rl_signature: 119 break; 120 default: 121 break; 122 } 123 } 124 125 //修改性别的弹出框 126 private void sexDialog(String sex) { 127 int sexFlag = 0; 128 if("男".equals(sex)){ 129 sexFlag = 0; 130 }else if("女".equals(sex)){ 131 sexFlag = 1; 132 } 133 final String items[] = {"男","女"}; 134 AlertDialog.Builder builder = new AlertDialog.Builder(this); 135 builder.setTitle("性别"); //设置标题 136 builder.setSingleChoiceItems(items, sexFlag, new DialogInterface.OnClickListener() { 137 @Override 138 public void onClick(DialogInterface dialog, int which) { 139 dialog.dismiss(); 140 Toast.makeText(UserInfoActivity.this,items[which],Toast.LENGTH_SHORT).show();; 141 setSex(items[which]); 142 } 143 }); 144 builder.show(); 145 } 146 147 //更新界面上的性别数据 148 private void setSex(String sex) { 149 tv_sex.setText(sex); 150 //更新数据库中的性别数据 151 DBUtils.getInstance(this).updateUserInfo("sex",sex,spUserName); 152 } 153}
6、修改我的界面代码
个人资料界面是通过点击用户头像进行跳转的,找到MyInfoView.java文件的initView()方法,在注释//已登录跳转到个人资料界面下方添加如下代码:
1Intent intent = new Intent(mContext, UserInfoActivity.class); 2mContext.startActivity(intent);
二、资料修改界面
1、个人资料修改界面
(1)、创建个人资料修改界面
在com.boxuegu.activity包中创建一个Java类。命名为ChangeUserInfoActivity。在res/layout文件夹下面创建布局文件,命名为activity_change_user_info。
(2)、导入界面图片
将所需界面图片info_delete.png导入到drawable文件夹中。
(3)、资料修改界面代码——activity_change_user_info.xml
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:background="#eeeeee"> 7 <include layout="@layout/main_title_bar"/> 8 <LinearLayout 9 android:layout_width="fill_parent" 10 android:layout_height="wrap_content" 11 android:gravity="center_vertical" 12 android:orientation="horizontal"> 13 <EditText 14 android:id="@+id/et_content" 15 android:layout_width="match_parent" 16 android:layout_height="50dp" 17 android:layout_gravity="center_horizontal" 18 android:background="@android:color/white" 19 android:gravity="center_vertical" 20 android:paddingLeft="10dp" 21 android:singleLine="true" 22 android:textColor="#737373" 23 android:textSize="14sp"/> 24 <ImageView 25 android:id="@+id/iv_delete" 26 android:layout_width="27dp" 27 android:layout_height="27dp" 28 android:layout_marginLeft="-40dp" 29 android:src="@drawable/info_delete"/> 30 </LinearLayout> 31 32</LinearLayout>
2、资料修改界面逻辑代码——ChangeUserInfoActivity.java
1package com.boxuegu.activity; 2 3import android.content.Intent; 4import android.content.pm.ActivityInfo; 5import com.boxuegu.R; 6import android.graphics.Color; 7import android.os.Bundle; 8import android.support.v7.app.AppCompatActivity; 9import android.text.Editable; 10import android.text.Selection; 11import android.text.TextUtils; 12import android.text.TextWatcher; 13import android.view.View; 14import android.widget.EditText; 15import android.widget.ImageView; 16import android.widget.RelativeLayout; 17import android.widget.TextView; 18import android.widget.Toast; 19 20public class ChangeUserInfoActivity extends AppCompatActivity { 21 private TextView tv_main_title,tv_save; 22 private RelativeLayout rl_title_bar; 23 private TextView tv_back; 24 private String title,content; 25 private int flag; //flag为1时表示修改昵称,为2时表示修改签名 26 private EditText et_content; 27 private ImageView iv_delete; 28 @Override 29 protected void onCreate(Bundle savedInstanceState){ 30 super.onCreate(savedInstanceState); 31 setContentView(R.layout.activity_change_user_info); 32 //设置界面为竖屏 33 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 34 init(); 35 } 36 37 private void init(){ 38 //从个人资料界面传递过来的标题和内容 39 title = getIntent().getStringExtra("title"); 40 content = getIntent().getStringExtra("content"); 41 flag = getIntent().getIntExtra("flag",0); 42 tv_main_title = (TextView) findViewById(R.id.tv_main_title); 43 tv_main_title.setText(title); 44 rl_title_bar = (RelativeLayout) findViewById(R.id.title_bar); 45 rl_title_bar.setBackgroundColor(Color.parseColor("#FF9900")); 46 tv_back = (TextView) findViewById(R.id.tv_back); 47 tv_save = (TextView) findViewById(R.id.tv_save); 48 tv_save.setVisibility(View.VISIBLE); 49 et_content = (EditText) findViewById(R.id.et_content); 50 iv_delete = (ImageView) findViewById(R.id.iv_delete); 51 if (!TextUtils.isEmpty(content)){ 52 et_content.setText(content); 53 et_content.setSelection(content.length()); 54 } 55 contentListener(); 56 tv_back.setOnClickListener(new android.view.View.OnClickListener(){ 57 @Override 58 public void onClick(android.view.View v){ 59 ChangeUserInfoActivity.this.finish(); 60 } 61 }); 62 iv_delete.setOnClickListener(new android.view.View.OnClickListener() { 63 @Override 64 public void onClick(android.view.View v) { 65 et_content.setText(""); 66 } 67 }); 68 tv_save.setOnClickListener(new android.view.View.OnClickListener() { 69 @Override 70 public void onClick(android.view.View view) { 71 Intent data = new Intent(); 72 String etContent = et_content.getText().toString().trim(); 73 switch (flag){ 74 case 1: 75 if (!TextUtils.isEmpty(etContent)){ 76 data.putExtra("nickName",etContent); 77 setResult(RESULT_OK,data); 78 Toast.makeText(ChangeUserInfoActivity.this,"保存成功",Toast.LENGTH_SHORT).show(); 79 ChangeUserInfoActivity.this.finish(); 80 }else { 81 Toast.makeText(ChangeUserInfoActivity.this,"昵称不能为空",Toast.LENGTH_SHORT).show(); 82 } 83 break; 84 case 2: 85 if (!TextUtils.isEmpty(etContent)){ 86 data.putExtra("signature",etContent); 87 setResult(RESULT_OK,data); 88 Toast.makeText(ChangeUserInfoActivity.this,"保存成功",Toast.LENGTH_SHORT).show(); 89 ChangeUserInfoActivity.this.finish(); 90 }else { 91 Toast.makeText(ChangeUserInfoActivity.this,"签名不能为空",Toast.LENGTH_SHORT).show(); 92 } 93 break; 94 } 95 } 96 }); 97 } 98 99 //监听个人资料修改界面输入的文字 100 public void contentListener(){ 101 et_content.addTextChangedListener(new TextWatcher() { 102 @Override 103 public void onTextChanged(CharSequence s, int start, int before, int count) { 104 Editable editable = et_content.getText(); 105 int len = editable.length(); 106 if (len>0){ //输入的文本的长度 107 iv_delete.setVisibility(View.VISIBLE); 108 }else { 109 iv_delete.setVisibility(View.GONE); 110 } 111 switch (flag){ 112 case 1: //1代表修改昵称 113 if (len>8){ //昵称最多8个文字,超过的部分需要进行截取 114 int selEndIndex = Selection.getSelectionEnd(editable); 115 String str = editable.toString(); 116 //截取新字符串 117 String newStr = str.substring(0,8); 118 et_content.setText(newStr); 119 editable = et_content.getText(); 120 //新字符串的长度 121 int newLen = editable.length(); 122 //旧光标位置超过新字符串的位置 123 if (selEndIndex>newLen){ 124 selEndIndex = editable.length(); 125 } 126 //设置新光标所在位置 127 Selection.setSelection(editable,selEndIndex); 128 } 129 break; 130 131 case 2: //2代表修改签名 132 if (len>16){ //昵称最多16个文字,超过的部分需要进行截取 133 int selEndIndex = Selection.getSelectionEnd(editable); 134 String str = editable.toString(); 135 //截取新字符串 136 String newStr = str.substring(0,16); 137 et_content.setText(newStr); 138 editable = et_content.getText(); 139 //新字符串的长度 140 int newLen = editable.length(); 141 //旧光标位置超过新字符串的位置 142 if (selEndIndex>newLen){ 143 selEndIndex = editable.length(); 144 } 145 //设置新光标所在位置 146 Selection.setSelection(editable,selEndIndex); 147 } 148 break; 149 default: 150 break; 151 } 152 } 153 154 @Override 155 public void beforeTextChanged(CharSequence s, int start, int count, int after) { 156 } 157 158 @Override 159 public void afterTextChanged(Editable arg0) { 160 } 161 }); 162 } 163 164}
3、修改个人资料界面代码
(1)、找到UserInfoActivity.java文件,在 private String spUserName;后面添加以下代码:
1private static final int CHANGE_NICKNAME = 1;//修改昵称的自定义常量 2private static final int CHANGE_SIGNATURE = 2;//修改签名的自定义常量
(2)、找到UserInfoActivity.java文件,创建一个enterActivityForResult方法用来自定义跳转
1 //自定义跳转方法 2 private void enterActivityForResult(Class<?> to,int requestCode,Bundle b){ 3 Intent i = new Intent(this,to); //to标识需要跳转到的界面 4 i.putExtras(b); //b表示跳转时传递的参数 5 startActivityForResult(i,requestCode); //requestCode表示一个请求码 6 7 }
(3)、找到UserInfoActivity.java文件,找到onClick()方法,在注释//昵称的点击事件下方添加如下代码:
1String name = tv_nickName.getText().toString();//获取昵称控件上的数据 2Bundle bdName = new Bundle(); 3bdName.putString("content",name); //传递界面上的昵称数据 4bdName.putString("title","昵称"); //传递界面的标题 5bdName.putInt("flag",1); //flag 传递1表示是昵称 6//跳转到个人资料修改界面 7enterActivityForResult(ChangeUserInfoActivity.class,CHANGE_NICKNAME,bdName);
(4)、找到UserInfoActivity.java文件,找到onClick()方法,在注释//签名的点击事件下方添加如下代码:
1String signature = tv_signature.getText().toString();//获取签名控件上的数据 2Bundle bdSignature = new Bundle(); 3bdSignature.putString("content",signature);//传递界面上的签名数据 4bdSignature.putString("title","签名"); //传递界面的标题 5bdSignature.putInt("flag",2);//flag 传递2表示是签名 6//跳转到个人资料修改界面 7enterActivityForResult(ChangeUserInfoActivity.class,CHANGE_SIGNATURE,bdSignature);
(5)、找到UserInfoActivity.java文件,在UserInfoActivity类中重写onActivityResult()方法,添加如下代码:
1//资料修改以后回传数据到界面 2 private String new_info; //最新数据 3 @Override 4 protected void onActivityResult(int requestCode,int resultCode,Intent data){ 5 super.onActivityResult(requestCode,resultCode,data); 6 switch (requestCode){ 7 case CHANGE_NICKNAME: 8 if(data!=null){ 9 new_info = data.getStringExtra("nickName");//从个人资料界面回传过来的数据 10 if(TextUtils.isEmpty(new_info)||new_info==null){ 11 return; 12 } 13 tv_nickName.setText(new_info); 14 //更新数据库中的呢称字段 15 DBUtils.getInstance(UserInfoActivity.this).updateUserInfo("nickName", new_info,spUserName); 16 } 17 18 break; 19 case CHANGE_SIGNATURE: 20 21 if(data!=null){ 22 new_info = data.getStringExtra("signature");//从个人资料界面回传过来的数据 23 if(TextUtils.isEmpty(new_info)||new_info==null){ 24 return; 25 } 26 tv_signature.setText(new_info); 27 //更新数据库中的签名字段 28 DBUtils.getInstance(UserInfoActivity.this).updateUserInfo("signature", new_info,spUserName); 29 } 30 31 break; 32 } 33 34 }
三、运行效果


