标签:onclick string 结构 字符串 地方 lin add 添加 override
活动的最佳实践
1.知晓当前是在哪一个活动
这个技巧将教会你,如何根据程序当前的界面就能判断出这是哪一个活动。
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//在 onCreate()方法中获取了当前实例的类名,并通过 Log打印了出来。
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
}
2.随时随地退出程序
你会发现当前想退出程序是非常不方便 的,需要连按三次 Back 键才行,该方法可以解决这个问题。
解决思路:
只需要用一个专门的集合类对所有的活动进行管理就可以了,
public class ActivityCollector {
//,我们通过一个 List来暂存活动,
public static List<Activity> activities = new ArrayList<Activity>();
//然后提供了一个 addActivity()方法用 于向 List 中添加一个活动
public static void addActivity(Activity activity) {
activities.add(activity);
}
//提供了一个 removeActivity()方法用于从 List 中移除活动。
public static void removeActivity(Activity activity) {
activities.remove(activity);
}
//最后 提供了一个 finishAll()方法用于将 List中存储的活动全部都销毁掉。
public static void finishAll() {
for (Activity activity : activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
}
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
//调用了 ActivityCollector 的 addActivity()方法,表明 将当前正在创建的活动添加到活动管理器里
ActivityCollector.addActivity(this);
}
@Override
//重写 onDestroy()方法, 并调用了 ActivityCollector 的 removeActivity()方法,表明将一个马上要销毁的活动从活动管 理器里移除。
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
Button button3 = (Button) findViewById(R.id.button_3);
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//调用 ActivityCollector.finishAll()方法
ActivityCollector.finishAll();
}
});
3.启动活动的最佳写法
public class SecondActivity extends BaseActivity {
/*所有 SecondActivity中需要的数据都是通过 actionStart()方法的参数传递过来的,然 后把它们存储到 Intent中,最后调用 startActivity()方法启动 SecondActivity。*/
public static void actionStart(Context context, String data1, String data2) {
Intent intent = new Intent(context, SecondActivity.class);
intent.putExtra("param1", data1);
intent.putExtra("param2", data2);
context.startActivity(intent);
} ……
}
这样写是一目了然,SecondActivity 所需要的数据全 部都在方法参数中体现出来了.
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//传入参数
SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
}
});
2016-11-25 21:56:18
标签:onclick string 结构 字符串 地方 lin add 添加 override
原文地址:http://www.cnblogs.com/weichenji/p/6103099.html