Android_个人中心_修改个人信息
番外:昨天发现一个可以直接操作SIM卡的软件,之前听说过Android5.1后支持SIM卡的操作,毕竟这跟我应该有或多或少的关系,所以打算从新版SDK入手学习一下,问题来了,我没有相关SDK,却发现这个一个可以下载很多Android相关软件的网站,所以没有按捺住好奇心下载了最新的Android studio并安装,界面什么的确实比Eclipse的漂亮很多,而且很多教学视频里也是用的这款软件,小激动,昨天下班的时候弄好了,只是很慢就开心的下班了,今早又弄了2小时,一直很慢,后来又查了一下,这软件对硬件要求挺高的,就我用的这电脑只能呵呵了然后卸载了,但是我还记得SIM卡那点事呢,既然Android studio用不成了,只能继续用Adt—bundle了,可是版本又不够,google又上不去,只能寄希望于国外的同学身上了,等待软件有了,再开始学习SIM卡相关的吧,好了,开始今天的工作,今天干的活有点碎,这篇博客就记录一下点滴吧,下图是我的个人中心的页面
接下来几篇文章都是围绕这个页面相关功能进行修改。
现在是个人资料修改,考虑到以后界面有重复性所以在 修改个人资料 页面中,采用 “include” 方法进行页面排版,使用 “include” 可舍去很多重复性的代码,提高效率,下面代码是我为页面导航写的:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/black" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ib_neg_back" android:layout_marginLeft="15dp" android:layout_width="35dp" android:layout_height="35dp" android:scaleType="centerCrop" android:layout_centerVertical="true" android:background="@android:color/transparent"/> <TextView android:id="@+id/tv_neg_title" android:layout_centerInParent="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/white"/> <Button android:id="@+id/bt_neg_save" android:layout_width="wrap_content" android:layout_height="30dp" android:layout_marginTop="2dp" android:layout_marginBottom="2dp" android:layout_marginRight="15dp" android:layout_alignParentRight="true" android:visibility="gone" android:textColor="@color/white"/>RelativeLayout>
在 个人中心页面 引入 代码如下:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/ll_chat_self_change"> <include layout="@layout/back_nevigation"/> LinearLayout>
在JAVA程序中对其进行属性设置代码如下:
private LinearLayout ll_chat_self_change; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity_self_setting); getActionBar().hide(); initView(); initData(); } private void initView() { // TODO Auto-generated method stub ll_chat_self_change = (LinearLayout)findViewById(R.id.ll_chat_self_change); } private void initData() { // TODO Auto-generated method stub ImageButton ib_back = (ImageButton) ll_chat_self_change.findViewById(R.id.ib_neg_back); TextView tv_title = (TextView) ll_chat_self_change.findViewById(R.id.tv_neg_title); Button bt_save = (Button)ll_chat_self_change.findViewById(R.id.bt_neg_save); ib_back.setImageResource(R.drawable.v5_0_1_flipper_head_back); tv_title.setText("修改个人资料"); tv_title.setTextSize(21); bt_save.setBackgroundResource(R.drawable.bt_rgs_shape); bt_save.setVisibility(View.VISIBLE); bt_save.setText("保存"); }
其中有一个细节,Android Button 默认文字与Button边界有一段距离,如果直接使用效果如下图:
这时我重写了背景,其中设置了padding 代码如下:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#00ff00"/> <corners android:radius="8px"/> <stroke android:color="#00ff00" android:width="1px"/> <padding android:top="0dp" android:bottom="0dp" android:left="6dp" android:right="6dp"/>shape>
这样显示效果如上上个图所示。
修改了一下界面,添加上了修改密码,只有当通过用户名+密码登陆时才支持修改密码,第三方登录时不支持修改密码,界面如下所示:
下面就是 用户更新啦,修改用户信息,我是按这种思路修改的,首先检查是否修改头像,如果修改了,先上传头像更改URL,然后在更改修改的文字信息,流程与注册相似。
更新用户 很多情况下你可能需要修改用户信息,比如你的应用具备修改个人资料的功能,Bmob提供的用户更新方式有两种写法:
第一种:新建一个用户对象,并调用update(context,objectId,updateListener)方法来更新(推荐使用)
BmobUser newUser = new BmobUser();
newUser.setEmail("xxx@163.com");
BmobUser bmobUser = BmobUser.getCurrentUser(context);
newUser.update(context,bmobUser.getObjectId(),new UpdateListener() {
@Override
public void onSuccess() {
// TODO Auto-generated method stub
toast("更新用户信息成功:");
}
@Override
public void onFailure(int code, String msg) {
// TODO Auto-generated method stub
toast("更新用户信息失败:" + msg);
}
});
第二种:获取本地的用户对象,并调用update(context,updateListener)方法来更新(不推荐使用),
BmobUser bmobUser = BmobUser.getCurrentUser(context);// 修改用户的邮箱为xxx@163.combmobUser.setEmail("xxx@163.com");bmobUser.update(context,new UpdateListener() { @Override public void onSuccess() { // TODO Auto-generated method stub toast("更新用户信息成功:"); } @Override public void onFailure(int code, String msg) { // TODO Auto-generated method stub toast("更新用户信息失败:" + msg); }});
在更新用户信息时,如果用户邮箱有变更并且在管理后台打开了邮箱验证选项的话,Bmob云后端同样会自动发一封邮件验证信息给用户。后文会对邮箱进行绑定。
这是通过Bmob进行修改用户信息,之前自己做服务器时,对用户修改是单独做了一个接口,通过账号与密码的比对完成信息更新,然后服务器数据库进行更新。至此完成用户跟人信息更新。
更多相关文章
- Android-几行代码通知系统自动安装apk
- android在更新ADT以后报java.lang.NoClassDefFound的解决办法
- 修改Android源码的Launcher的例子
- [转]android 修改ramdisk.img和init.rc && android启动后设置/da
- Android之Handler的用法
- 个人简历制作——Android自动升级&个人“服务器”搭建
- Android(安卓)修改字体,跳不过的 Typeface
- Python+PyQT5的子线程更新UI界面
- AndroidStudio自定义注释模板笔记