关闭

带返回值的开启一个Activity;

标签: 带返回值的开启一个A
760人阅读 评论(0) 收藏 举报
分类:

带返回值的开启一个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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17697次
    • 积分:597
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:8篇
    • 译文:0篇
    • 评论:1条