废话不多说,直入主题
·1.为Activity 定义新的生命周期
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Log.i("NowActivity is", getClass().getName());
setContentView(R.layout.test_layout);
result = (TextView) findViewById(R.id.result);
}经常我们在写Activity 的时候onCreate 做的事情太多了, 初始化变量,点击事件有时候还调用MobileAPI获取数据。
于是我们定义一个BaseActivity 重写onCreate 方法
public abstract class BaseActivity extends Activity {
protected SumpayPlugWeb<PaymentParam> web;
protected TextView result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Log.i("NowActivity is", getClass().getName());
initVariables();
initWidget();
loadDate();
}
public void onClick(View v) {
}
protected abstract void initWidget();
protected abstract void loadDate();
protected abstract void initVariables();
}
重写Activity 让所有的Activity集成BaseActivity
@Override
protected void initWidget() {
setContentView(R.layout.test_layout);
result = (TextView) findViewById(R.id.result);
}
@Override
protected void loadDate() {
}
@Override
protected void initVariables() {
}对Activity 生命周期重新定义是借鉴了javaScript 的做法。
对点击事件我们有些人喜欢在Activity 上直接实现
OnClickListener
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.backBtn:
break;
default:
break;
}
}其实这种方法并不好,
1switch 放入的是 整型或字符型变量
2直接在控件上增加点击事件是面向对象的写法,可以将onclick 的实现封装到另一个方法里,这样方法就不onclick方法就不会显得很臃肿.
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
moth();
}
});
private void moth(){
}
网络获取的json数据不要使用JsonObject 和JsonArray 解析,要使用fastJson 和Gson解析。
Adapter 要添加Holder 可以避免频繁的创建同一个列表项,从而极大地节省内存
数据类型的转换不正确导致崩溃占了很大的比例
我们可以将数据转换函数做好判断封装到util 类中。
744

被折叠的 条评论
为什么被折叠?



