Android屏幕间的跳转和事件的传递
Android屏幕间的跳转和事件的传递
在一般情况下,Android的每一个屏幕基本上就是一个Activity,屏幕间的切换实际上就是在互相调用的过程,Android使用Intent完成这个动作。包括两种跳转:无返回值和有返回值。
一、无返回值跳转
- public void onClick(View v) {
- Intent intent=new Intent(TestAndroidActivity.this,t2.class);
- startActivity(intent);
- }
二、带有返回值的跳转
ReceiveResult.java片段
- static final private GET_CODE = 0;
- <pre class="java" name="code">public void onClick(View v) {
- // Start the activity whose result we want to retrieve. The
- // result will come back with request code GET_CODE.
- Intent intent = new Intent(ReceiveResult.this, SendResult.class);
- startActivityForResult(intent, GET_CODE);
- }
SendResult.java片段
- public class SendResult extends Activity
- {
- /**
- * Initialization of the Activity after it is first created. Must at least
- * call {@link android.app.Activity#setContentView setContentView()} to
- * describe what is to be displayed in the screen.
- */
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- // Be sure to call the super class.
- super.onCreate(savedInstanceState);
- // See assets/res/any/layout/hello_world.xml for this
- // view layout definition, which is being set here as
- // the content of our screen.
- setContentView(R.layout.send_result);
- // Watch for button clicks.
- Button button = (Button)findViewById(R.id.corky);
- button.setOnClickListener(mCorkyListener);
- button = (Button)findViewById(R.id.violet);
- button.setOnClickListener(mVioletListener);
- }
- private OnClickListener mCorkyListener = new OnClickListener()
- {
- public void onClick(View v)
- {
- // To send a result, simply call setResult() before your
- // activity is finished.
- setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
- finish();
- }
- };
- private OnClickListener mVioletListener = new OnClickListener()
- {
- public void onClick(View v)
- {
- // To send a result, simply call setResult() before your
- // activity is finished.
- setResult(RESULT_OK, (new Intent()).setAction("Violet!"));
- finish();
- }
- };
- }
ReceiveResult.java 片段
- protected void onActivityResult(int requestCode, int resultCode,
- Intent data) {
- // You can use the requestCode to select between multiple child
- // activities you may have started. Here there is only one thing
- // we launch.
- if (requestCode == GET_CODE) {
- // We will be adding to our text.
- Editable text = (Editable)mResults.getText();
- // This is a standard resultCode that is sent back if the
- // activity doesn't supply an explicit result. It will also
- // be returned if the activity failed to launch.
- if (resultCode == RESULT_CANCELED) {
- text.append("(cancelled)");
- // Our protocol with the sending activity is that it will send
- // text in 'data' as its result.
- } else {
- text.append("(okay ");
- text.append(Integer.toString(resultCode));
- text.append(") ");
- if (data != null) {
- text.append(data.getAction());
- }
- }
- text.append("\n");
- }
评论暂时关闭