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服务?显示有关代码块的更多详细信息