【问题标题】:How to send a list data from Activity A to Activity B and edit the data inside Activity B如何将列表数据从活动 A 发送到活动 B 并在活动 B 中编辑数据
【发布时间】:2021-11-09 21:51:44
【问题描述】:

我想从 Activity A 向 Activity B 发送一个列表。当我在 Activity B 中收到数据时,我想对收到的列表项进行更改。当我回到活动 A 时,我想看看我刚刚所做的更改。到目前为止,我已经尝试使用意图发送数据列表,但是当我尝试对其进行编辑时,并没有进行更改。这是我的代码示例:

活动 A

 private var items : Lists<Items> 

  context.startActivity(
                Intent(context, B::class.java).apply {
                    putExtra("itemList", items as ArrayList)
                }
            )

活动 B

 val itemList = intent?.extras?.getSerializable("itemList") as? ArrayList<Items>

  // trying to edit the list
  itemList.forEachIndexed { index, t ->
            run {
                if (t.id == tweet.id) {
                    items[index].name = "hello"
                }
            }
        }

【问题讨论】:

  • 删除了 android-studio 标签,因为该标签用于解决有关 Android Studio 产品的问题/问题。您的问题是一个通用的 Android 问题。

标签: android android-intent


【解决方案1】:

在这种情况下,基本上你可以使用startActivityForResult

让我用一个例子来解释

从您的FirstActivity 使用startActivityForResult() 方法调用SecondActivity

例如:

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

在您的SecondActivity 中,将要返回的数据设置为FirstActivity。如果不想返回,就不要设置。

例如:在SecondActivity如果要发回数据:

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

现在在您的FirstActivity 类中,为onActivityResult() 方法编写以下代码。

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

    if (requestCode == LAUNCH_SECOND_ACTIVITY) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            // Write your code if there's no result
        }
    }
} //onActivityResult

感谢this 的回答。您可以查看它以获取更多详细信息

【讨论】:

  • 如何使用此方法将列表数据从活动 A 发送到 B?
  • putArrayListExtra
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多