通過調用目的活動提供的特定方法來啟動目的活動,並傳遞數據,可以為後續實際開發中減少不必要的麻煩。
以下為在MainActivity 啟動SecondActivity 為例:
SecondActivity 提供actionStart()方法,並將context、data設定為參數,在該方法中定義Intent為啟動本活動,並將前活動傳遞的數據接收過賬,並在onCreate()中加以運用。
//提供通用啟動方法,供其他活動調用並啟動本活動。在調用的同時同步將需傳入的data以參數的形式傳入
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);
}
MainActivity onCreate()中調用SecondActivity 的actionStart()方法,並將data作為參數後傳:
button_send_1_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);*/
data1 = editText_1_1.getText().toString();
data2 = editText_1_2.getText().toString();
SecondActivity.actionStart(MainActivity.this, data1, data2);
}
});
在SecondActivity 的onCreate() 取出數據,然後可以進行接下來的邏輯。
Intent intent = getIntent();
String data1 = intent.getStringExtra("param1");
String data2 = intent.getStringExtra("param2");
textView_2_2 = (TextView)findViewById(R.id.textView_2_2);
textView_2_3 = (TextView)findViewById(R.id.textView_2_3);
textView_2_2.setText(data1);
textView_2_3.setText(data2);