【问题标题】:How to implement the call back mechanism between Activites如何实现Activity之间的回调机制
【发布时间】:2013-08-01 05:39:57
【问题描述】:

我有 2 个活动,第一个详细信息活动,第二个活动页面是确认页面,一旦我确认它应该回到第一页,我应该如何处理这种情况?

是否可以在活动之间,而不是使用片段?

【问题讨论】:

  • 使用startActivityForResult(); 将您孩子Activity 的回复发送给它的父母。

标签: android android-intent android-event


【解决方案1】:

你必须使用 startActivityForResult();启动 secondActivity 时的方法。

你还必须实现 onActivityResult() 方法。

这是第一个 Activity 的代码..

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == 1) {
        Bundle extra = data.getExtras();
        String ID = extra.getString("NameKey").trim();
         // do your code here.

    }
}

第二个Activity中的代码..

在确认点击按钮上添加代码。

    Intent i = new Intent();
    Bundle extra = new Bundle();
    extra.putString("NameKey", KeyValue);

    i.putExtras(extra);
    setResult(1, i);
    finish();  

【讨论】:

    【解决方案2】:

    这可能对你有帮助

    这个是FirstActivity

    Intent i = new Intent(this, SecondActivity.class);
    startActivityForResult(i, 1);
    

    例如:如果你想发回数据,还有 secondActivity

     Intent returnIntent = new Intent();
     returnIntent.putExtra("result",result);
     setResult(RESULT_OK,returnIntent);     
     finish();
    

    【讨论】:

      【解决方案3】:

      通过startActivityForResult(intent, requestCode)启动结果确认页面,

      这是一个完整的例子 (http://www.vogella.com/articles/AndroidIntent/#usingintents_sub)

      【讨论】:

        【解决方案4】:

        我相信调用 finish() 是退出活动的最简单方法。它应该返回到上一个,类似于点击后退按钮。

        编辑:虽然,正如 Sirlate 所提到的,如果您希望返回数据,startActivityForResult 可能是您最好的选择。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-05
          • 1970-01-01
          • 2021-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多