android - 真的没有得到 setResult 和 onActivityResult

标签 android android-intent

好的,我又来了。还在学习。现在我需要在 2 个 Activity 中来回传递整数值。第一个 Activity 将计数器值传递给第二个 Activity (跟踪玩家统计数据)。第二个 Activity 能够将统计数据重置为零,从而将数字传回。但我就是无法理解它。这是我到目前为止所拥有的...

第一个 Activity (主要):

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_settings:
            Intent i = new Intent(this, Options.class);
            Bundle counters = new Bundle();
            counters.putInt("plWin", plWin);
            counters.putInt("plLoss", plLoss);
            counters.putInt("plDraw", plDraw);
            i.putExtras(counters);
            startActivityForResult(i, ?);
            return true;

请填写“?”

第二个 Activity (选项):

public void onBackPressed() {
    super.onBackPressed();
    Intent i = new Intent();
    Bundle counters = new Bundle();
    counters.putInt("Wins", wins);
    counters.putInt("Losses", losses);
    counters.putInt("Draws", draws);
    i.putExtras(counters);
    setResult(?, i);
    finish();
}

同样,无法弄清楚“?”。

回到我的第一个 Activity ,我不知道之后会发生什么:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

渴望弄清楚这一点。提前致谢。

最佳答案

这样做

startActivityForResult(i, 100);  

对于设置结果

setResult(RESULT_OK);

您可以使用 setresult 进行更高级的结果发送,例如

intent = new Intent();
intent.putExtra("key", "I am done");
setResult(1001, intent);

并在 onActivityResult 中

protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
   if(requestCode == 100)
   {
    String key = data.getStringExtra("key");
    if(resultcode == 1001 && key!= null && key.equals("I am done"){
       //do something
    }else{
       //do something else
    }

   }
} 

你不必使用 setResult,如果你需要检查的只是你是否从 Activity 中返回,那么不要设置它,也不要检查 onActivityResult

关于android - 真的没有得到 setResult 和 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233106/

相关文章:

java - 如何在后台继续运行蓝牙 Activity ?

android - 使用 SCameraCaptureSession 在三星设备上的 Android 8 上出现错误

java - Glide 的 Android 图片下载问题

android - 为什么我的 Intent 启动一个空的 Activity 而不是正确的 Activity ?

java - 与 onActivityResult 一起使用时无法引用非最终 Intent

android - 如何从 ContactsContract.Contacts 获取联系人的 LOOKUP_KEY?

Android 自定义微调适配器不显示内容

android - 如何将进度条置于布局顶部

android - admob 和统一/崩溃

android - 搜索 Intent 不起作用