第一行代码--笔记(2)

知晓当前是在哪一个活动

public class BaseActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    Log.d("BaseActivity", getClass().getSimpleName());

  }

}

把所有的Activity改成继承BaseActivity

随时随地退出程序

新建一个ActivityCollector 类作为活动管理器,代码如下所示:

public class ActivityCollector {

public static List<Activity> activities = new ArrayList<Activity>();

public static void addActivity(Activity activity) {

activities.add(activity);

}

public static void removeActivity(Activity activity) {

activities.remove(activity);

}

public static void finishAll() {

for (Activity activity : activities) {

if (!activity.isFinishing()) {

activity.finish();

}

}

}

}

然后再BaseActivity里添加:

onCreate()方法里添加ActivityCollector.addActivity(this);

onDestroy()方法里添加ActivityCollector.removeActivity(this);

从此以后,不管你想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法

启动活动的最佳写法:

修改SecondActivity 中的代码,如下所示:

public class SecondActivity extends BaseActivity {

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

SecondActivity.actionStart(FirstActivity.this, "data1", "data2");

UI控件的显示、透明、隐藏

android:visibility进行指定,可选值有三种,visibleinvisible gonevisible 表示控件是可见的,这个值是默认值,不指定android:visibility 时,控件都是可见的。invisible 表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。gone 则表示控件不仅不可见,而且不再占用任何屏幕空间。我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入View.VISIBLEView.INVISIBLE View.GONE 三种值。

原文地址:https://www.cnblogs.com/tero/p/5255784.html