带返回值的开启一个Activity;

来源:互联网 发布:mac电脑壁纸高清全屏 编辑:程序博客网 时间:2024/05/12 16:45

带返回值的开启一个Activity;
1.在主窗口中开启时,使用startActivityForResult()方法开启
代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.button1);    editText1 = (EditText) findViewById(R.id.editText1);    editText2 = (EditText) findViewById(R.id.editText2);    editText3 = (EditText) findViewById(R.id.editText3);    button.setOnClickListener(new View.OnClickListener() {        public void onClick(View v) {            Intent intent = new Intent(MainActivity.this,                    NextActivity.class);            String str1 = editText1.getText().toString().trim();            String str2 = editText2.getText().toString().trim();            intent.putExtra("num1", str1);            intent.putExtra("num2", str2);            //开启下一个界面,并调用startActivityForResult函数。1001是requestCode;            startActivityForResult(intent, 1001);        }    });}

2.在下一个窗口接收数据,并进行运算。将值返回时使用SetResult方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载资源
setContentView(R.layout.activity_next);
// 绑定控件
button = (Button) this.findViewById(R.id.button1);
editText = (EditText) this.findViewById(R.id.editText1);

    button.setOnClickListener(new View.OnClickListener() {        public void onClick(View v) {            Intent intent = getIntent();            String num1String = intent.getStringExtra("num1");

// System.out.println(“–num1=” + num1String);
String num2String = intent.getStringExtra(“num2”);
// System.out.println(“–num2=” + num2String);
int num1 = Integer.parseInt(num1String);
int num2 = Integer.parseInt(num2String);
// int num3 = num1 + num2;
// String num3String = num3 + ” “;
//System.out.println(“–num3=” + num3String);
editText.setText(num1+num2+” “);

            //将值返回到第一个界面,其中1002是resultCode            intent.putExtra("num3", num1+num2+" ");            setResult(1002, intent);        }    });}

3.在主窗口中添加onActivityResult方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
//注意requestCode 和resultCode 接收的值和第一次放入的值必须一样
if (requestCode == 1001 && resultCode == 1002) {
String num3String = data.getStringExtra(“num3”);
editText3.setText(num3String);
}
}

0 0
原创粉丝点击