Android:在ListView中将数据从一个活动传递到另一个活动

Android:在ListView中将数据从一个活动传递到另一个活动,android,listview,android-intent,Android,Listview,Android Intent,我正在制作一个杂货清单应用程序 在我的第一个活动中我有一个列表视图,在我的第二个活动中,我可以添加新的杂货店详细信息。我想在第一个活动的列表视图中显示这些详细信息。现在,我如何将数据从第二个活动传递到列表视图中的第一个活动 在第二个活动中,我用愚弄的代码传递数据: EditText editName = (EditText) findViewById(R.id.txtName); EditText editQty=(EditText) findV

我正在制作一个杂货清单应用程序

在我的第一个
活动中
我有一个
列表视图
,在我的第二个活动中,我可以添加新的杂货店详细信息。我想在第一个
活动
列表视图
中显示这些详细信息。现在,我如何将数据从第二个
活动
传递到
列表视图
中的第一个
活动

在第二个活动中,我用愚弄的代码传递数据:

            EditText editName = (EditText) findViewById(R.id.txtName);
             EditText editQty=(EditText) findViewById(R.id.txtqty);
             String name= editName.getText().toString();
             String quantity=editQty.getText().toString();
             Intent returnIntent = new Intent();
             returnIntent.putExtra("name",name);
             returnIntent.putExtra("quantity",quantity);
             setResult(RESULT_OK,returnIntent);
             finish();
在第一个活动中,我使用了如下意图:

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

        if (requestCode == 1) {
            if(resultCode == RESULT_OK){
                Bundle b = data.getExtras();
                if ( b!= null ){
                String strName=data.getStringExtra("name");
                String strQty=data.getStringExtra("quantity");
                System.out.println(strName);
                System.out.println(strQty);

                }
            }
            if (resultCode == RESULT_CANCELED) {
                //Write your code if there's no result
            }
        }

请帮我解决这个问题。提前感谢。

我建议您使用SQLite处理您的问题,当您插入新的杂货店详细信息时,只需创建一个表并将该详细信息插入数据库表中。现在,当您想显示新添加的详细信息时,只需运行“选择”查询并设置ListView适配器


如果每次不想设置适配器,只需维护一个布尔静态变量,如isGroceryAdded。如果成功添加了详细信息,则此时将该布尔变量设为“true”。并在第一个活动中检查该变量是否为true,然后再次运行query并再次设置适配器,设置适配器后,只需再次将该变量设置为false。

如果没有一些代码,我的建议是创建一个实现serializable的模型类,将其作为结果放入intent中,并将其传递回第一个活动(注意,要使其起作用,第二个活动必须使用startActivityForResult()启动)


对于类似的问题,请查看

这是一个在大多数情况下都适用的解决方案的概述。考虑到您没有提供特定于您的情况的代码,这可能是您所需要的,也可能不是您所需要的

1) 要恢复第一个活动,请从第二个活动向第一个活动发送一个意向,其中包含作为意向附加项(键值对)的杂货店详细信息

2) 重写第一个活动的onResume()方法来处理传入的意图,以提取所需的数据

3) 然后,您需要使用此额外信息更新适配器使用的数据

4) 然后,您需要在适配器上调用notifyDataSetChanged(),以便它使用更新的信息重新创建其视图


希望这对您有所帮助。

意味着从详细信息视图活动将数据传递到第一个活动列表视图?您将在何处保存详细信息?Sqlite或web服务?显示有关代码块的更多详细信息