eclipse不会自动重写OnActivityResult。如何用Intent返回多组数据?

2025-12-05 14:12:04
推荐回答(3个)
回答1:

OnActivityResult不是写在onCreate中,而是需要重写activity方法的onActivityResult方法


示例代码如下

   

//原activity
public class OneActivity extends Activity{
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(OneActivity.this,TwoActivity.class)
                startActivityForResult(intent,1);
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//得到结果处理代码写在这
    }
}

//被启动的activity
public class TwoActivity extends Activity{
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent();
                //向intent加入数据
                //下面就设置了两个数据一个int和一个string作为返回
                intent.putExtra("msg1",1);
intent.putExtra("msg2","hello");
setResult(1, intent);
        }
    }
}

回答2:

OnActivityResult 是不是应该在 OnClickListener里面?

回答3:

intent.putExtra(key, valueObject);

String valueObject = intent.getStringExtra(key);

http://www.eoeandroid.com/thread-204417-1-1.html