今天在安卓项目中出现几个问题:
首先,程序中要实现登录后数据的共享,例如登录后要记录下用户名等信息,别的Activity可能还要用,因为Activity太多,不方便直接用Intent传数据,因上我使用的方法是SharedPreferences方法,当然这需要考虑到安全性问题,可以使用MD5方法。
然后在Tabhost使用过程中,如果点击了某个tab,再进入其它界面,然后回来的时候要更新数据,如果是类似于登录后返回个人中心这种情况当然可以使用startActivityForResult(mIntent, LOGIN_CODE)方法简单,可是有些情况多个界面都可以调用LoginActivity然后只是登录并不返回个人中心,这个时候就得把登录后的个人信息保存,下次点击个人中心Tab的时候显示,可以第二次点击Tab的时候界面不会刷新,为了解决这个问题我们可以重写onResume()来解决。
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("net.loonggg.exitapp");
this.registerReceiver(this.finishAppReceiver, filter);
SharedPreferencesForLogin spfl = new SharedPreferencesForLogin(PersonalActivity.this,"user_l");
if(!spfl.getValue("USERNAME").isEmpty())
{
String nametemp=spfl.getValue("USERNAME");
String phonetemp=spfl.getValue("PHONE");
String emailtemp=spfl.getValue("EMAIL");
String addresstemp=spfl.getValue("ADDRESS");
String sextemp=spfl.getValue("SEX");
username.setText(nametemp);
pphone.setText("电话"+"\n"+phonetemp);
pemail.setText("邮箱"+"\n"+emailtemp);
paddress.setText("地址"+"\n"+addresstemp);
if(sextemp.equals("1"))
{
psex.setText("男");
}
else
{
psex.setText("女");
}
// jobtitle.setText("VIP");
if(Ly_login.isShown()){
Ly_personalInfo.setVisibility(View.VISIBLE);
Ly_login.setVisibility(View.GONE);
Ly_Other.setVisibility(View.VISIBLE);
}
Ly_personalInfo.setVisibility(View.VISIBLE);
Ly_login.setVisibility(View.GONE);
Ly_Other.setVisibility(View.VISIBLE);
}
}
第三个问题是多个Activity的应用怎么退出的问题,每个的Activity都要finish(),我们可以使用重写基类BaseActivity,这个类里面加上广播函数,然后其它每个Activity都继承这个类,当点退出程序按钮后发一个广播消息进行finish(),这样每个界面就全部关闭了。http://blog.csdn.net/loongggdroid/article/details/18462351这个博文里面有详细说明和代码。