在安卓工作室中,我有一个名为ADD的活动,让用户输入他的名字和生日。 当用户单击"确定"按钮时,数据将保存到SQLDatabase,然后数据将显示在列表视图中的另一个活动中。 我想要的是:当用户处于列表视图活动中并单击此列表视图的任何项目时, 我想用保存的数据而不是默认数据将他带回 ADD 活动。
请问这里有人有解决方案吗?
尝试使用 startActivityForResult和活动结果按两个类 A&B 的示例
从 A 开始活动 B
Intent i = new Intent(this, B.class);
startActivityForResult(i, 1);
在活动 B 中,当您想要恢复数据时
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果您想返回没有数据
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();
在活动 A 中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
您可以使用包含所需数据的 startActivity()
with Intent 启动 ADD 活动,并在 ADD 活动onCreate()
检查该 Intent 数据。如果意图数据为空,则表示用户在没有单击列表项的情况下启动了该活动,如果您获得意图数据,则可以提取您输入的值并使用这些值填充字段。
示例 = 第一种情况:
startActivity(new Intent(this, AddActivity.class));
第二种情况(当您单击列表项时(:
startActivity(new Intent(this, AddActivity.class).putExtra("name", "your_name").putExtra("d_o_b", <your_date_of_birth>));
然后使用getIntent()
获取这些数据onCreate()
检查getIntent()
。如果它为 null,那么它是通常的流程,否则您可以使用 - 从中获取值 -
getIntent().getStringExtra("name")
并遵循相同的过程 dob 并使用这些值填充视图