如何在完成一项活动后通过意图发送价值

tru*_*ero 9 android android-activity

我有一个显示项目网格视图的活动.当我点击其中任何一个时,我移动到显示该项目信息的另一个活动.我也可以选择返回(gridview活动)或删除它.

如果我删除它,我需要刷新gridview,所以我需要发送一个变量"eey,我删除了一个项目.你需要刷新".

我想我需要用startActivityForResult打开第二个活动,但我不知道应该如何设置该值.

选项1(后退箭头):完成活动.没有结果回来.选项2(删除项目):完成活动并重新设置结果.

提前致谢!

Vip*_*hit 14

您可以设置自定义结果.喜欢DELETE_ITEM.

在删除按钮上执行以下操作:

public static int DELETE_ITEM = 1234;

Intent intent = new Intent();
intent.putExtra("ITEM_ID", YOUR ITEM ID);
setResult(DELETE_ITEM , intent);
Run Code Online (Sandbox Code Playgroud)

现在,在您的活动结果上执行以下操作:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
  if (resultCode == DELETE_ITEM) {
    // CODE TO DELETE ITEM
    super.onActivityResult(requestCode, resultCode, intent);
  }
} 
Run Code Online (Sandbox Code Playgroud)


Ben*_*hew 12

希望这可以帮助

头等舱

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

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {

        if (resultCode == RESULT_OK) {
            String result = data.getStringExtra("result");
                             //your code

        }
        if (resultCode == RESULT_CANCELED) {
            // Write your code if there's no result
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

二等

Intent returnIntent = new Intent();
returnIntent.putExtra("result", "your message");
setResult(RESULT_OK, returnIntent);
finish();
Run Code Online (Sandbox Code Playgroud)


Bla*_*elt 5

是的你必须使用startActivityForResult.在调用完成显示项目信息的活动之前,您必须致电

setResult(resultCode, data);
finish();
Run Code Online (Sandbox Code Playgroud)

在GridView的Activity中将被调用

protected void onActivityResult(int arg0, int resultCode, Intent data)
Run Code Online (Sandbox Code Playgroud)