【问题标题】:onActivityResult not being calledonActivityResult 没有被调用
【发布时间】:2014-08-26 19:28:12
【问题描述】:

第一个活动(EditCycle)调用第二个活动(EditChooseLists)

Intent i=new Intent(EditCycle.this,EditChooseLists.class);
startActivityForResult(i, RESULT_OK);

第二个活动(EditChooseLists)就这样结束了

Toast.makeText(EditChooseLists.this, list.get(position), Toast.LENGTH_SHORT).show();            
Intent i=new Intent();
i.putExtra("desc",content);
i.putExtra("content", list.get(position));
setResult(RESULT_OK,i);
finish();

第一个 Activity (EditCycle) 的 onActivityResult 方法被重写

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    System.out.print("Test Result !");

    String content=data.getExtras().getString("content");
    System.out.println("result String"+content);
    Toast.makeText(EditCycle.this,content, Toast.LENGTH_SHORT).show();
    TextView t=(TextView)findViewById(R.id.tv_editcycle_cropLbl);
    t.setText(content);
}

然而,当第二个活动恢复时什么都没有发生,控制台中什么都没有,没有 toast,textview 没有改变

我的结论是 onActivityResult 没有被调用

谁能帮忙?

【问题讨论】:

标签: android android-intent android-activity onactivityresult


【解决方案1】:

你的问题在这里:

startActivityForResult(i, RESULT_OK);

因为RESULT_OK == -1 并将负值作为第二个参数传递给startActivityForResult 违反了方法本身的这个承诺(来自Android Developer documentation):

void startActivityForResult (Intent intent, int requestCode)

requestCode int如果 >= 0,这个代码会在 Activity 退出时在 onActivityResult() 中返回。

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多