读书人

【初学android】议论Activity

发布时间: 2012-08-15 16:57:17 作者: rapoo

【初学android】讨论Activity
初学android,对比着J2EE来理解。
个人理解 startActivityForResult(intent, REQUEST_CODE)发出等待Resul的请求,并通过 第二个参数REQUEST_CODE作为比对标识,这时候线程(这里是Activity)挂起,不马上destroy,而是执行stop(或者pause吧,暂时不能理解太多)方法,等待result返回,调用下面的onActivityResult()方法。在调用onActivityResult()方法时,用第一个参数标识由哪一个activity发出请求,并用第二个参数标识由哪一个activity响应返回结果,第三个参数intent用来作数据的通信,即传递数据,类似集合,再通过getExtras()的方法,得到类似map的键值对的bundle来获取传递的数据。

public class IntentDemoActivity extends Activity {    /** Called when the activity is first created. */private Button mainBtn = null;public final static int REQUEST_CODE = 1;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mainBtn = (Button)findViewById(R.id.mainBtn);        mainBtn.setOnClickListener(listener);    }    private OnClickListener listener = new OnClickListener() {        @Override    public void onClick(View v) {    Intent intent = new Intent();    intent.setClass(IntentDemoActivity.this, SecondActivity.class);    intent.putExtra("str", "SecondActivity");        startActivityForResult(intent, REQUEST_CODE);    }    };@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if(requestCode == REQUEST_CODE){if(resultCode == SecondActivity.RESULT_CODE){Bundle bundle = data.getExtras();String str = bundle.getString("back");Toast.makeText(IntentDemoActivity.this, str, Toast.LENGTH_LONG).show();}}}    }

读书人网 >Android

热点推荐