Activity 之间的交互

来源:互联网 发布:java多线程详解 编辑:程序博客网 时间:2024/06/05 11:26

在第一个activity中使用

startActivityForResult(intent, state_tag);

启动第二个activity,在第二个activity中调用 setResult(,)

在第一个activity中重载onActivityResult()



第一个Activity:

public class MainActivity extends Activity {    private TextView tv = null;    private int state_tag = 1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView)findViewById(R.id.textView);        Button button = (Button)findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {                                            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                Intent i = new Intent(MainActivity.this, SecondActivity.class);                Bundle bundle = new Bundle();                bundle.putString("content", tv.getText().toString());                i.putExtra("bundle", bundle);                startActivityForResult(i, state_tag);            }        });    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        // TODO Auto-generated method stub        super.onActivityResult(requestCode, resultCode, data);        if(requestCode == state_tag)        {            if(resultCode == RESULT_OK)            {                                                    Log.i("MainActivity", data.getBundleExtra("bundle2").getString("newContend"));                tv.setText(data.getBundleExtra("bundle2").getString("newContend"));            }            else            {                Log.i("MainActivity", "in else:");                return;            }        }    }}

第二个activity:

package com.example.intenttest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class SecondActivity extends Activity {    private EditText editText = null;    private Button okButton = null;    private Button cancelButton = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);                  editText = (EditText)findViewById(R.id.editText);        okButton = (Button)findViewById(R.id.okButton);        cancelButton = (Button)findViewById(R.id.cancelButton);        Intent i = getIntent();        editText.setText(i.getBundleExtra("bundle").getString("content"));        okButton.setOnClickListener(new View.OnClickListener() {                          @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                Intent i = new Intent(SecondActivity.this, MainActivity.class);                Bundle bundle = new Bundle();                bundle.putString("newContent", String.valueOf(editText.getText()));                i.putExtra("bundle2", bundle);                setResult(RESULT_OK, i);                finish();            }        });        cancelButton.setOnClickListener(new View.OnClickListener() {                          @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                setResult(RESULT_CANCELED);                finish();            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        // TODO Auto-generated method stub        super.onActivityResult(requestCode, resultCode, data);    }}


0 0
原创粉丝点击