启动一个Activity后怎么能拿到一个结果?
用 StartActivityForResult() 来替换 StartActivity() 。
1、MainActivity页面 传递表达式 " _ + _ = ? ":
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, Activity2.class);
String a = editText1.getText().toString().trim(); //getText()<span style="color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; text-indent: 28px;">返回数据窗口控件中 悬浮在当前行列之上的编辑框中的文本</span>
String b = editText2.getText().toString().trim();
intent.putExtra("message", a + "+" + b + "=" + "?");//intent.putExtra(name, value); intent发出(传递)名为message的数据
startActivityForResult(intent, 1000);//其中1000是程序员设置的请求码(requestCode)
}
});
2、 Activity2 页面接收 显示表达式:
setContentView(R.layout.activity2);
textView = (TextView)findViewById(R.id.textView1);
Intent intent = getIntent();
String message2 = intent.getStringExtra("message"); //intent 检索(提取)名为message的字符串
textView.setText(message2); // xxx.setText()表示将对象xxx上的文字设置为括号内引用的内容
3、 Activity2 点击按钮后回传editText 的值并终结Activity2
public void onClick(View v) {
// TODO Auto-generated method stub
String value = editText.getText().toString().trim();
Intent intent = new Intent();
intent.putExtra("result", value);//intent发出名为result的内容(值)value
//设置回传意图
setResult(1001,intent);//其中1001是程序员设置的resultCode
finish(); //结束Activity的生命活动周期
}
4、 在类MainActivity中override(覆盖并重写)方法onActivityResult()
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1000 && resultCode == 1001) {
String result_value = data.getStringExtra("result");
editText3.setText(result_value);
}