在android studio中,我有一个名为ADD的活动,让用户输入他的名字和生日。当用户单击“确定”按钮时,数据将保存到SQLDatabase,然后数据将显示在列表视图中的另一个活动中。我想要的是:当用户处于listview活动并点击此列表视图的任何项目时,我想带他回到ADD活动,保存的数据不是默认数据。
这里有人有解决方案吗?
答案 0 :(得分:0)
尝试使用startActivityForResult 和onActivityResult 示例通过两个类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
}
}
}
答案 1 :(得分:0)
您可以使用包含所需数据的Intent startActivity()
启动ADD活动,并在ADD活动的onCreate()
中检查该意图数据。
如果intent数据为null,则表示用户在未单击列表项的情况下启动了该活动,如果获得了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>));
然后使用onCreate()
getIntent()
中获取这些数据
检查getIntent()
。如果它为null,那么它是通常的流量,你可以使用它来获取它的值 -
getIntent().getStringExtra("name")
并按照dob的相同步骤使用这些值
弹出您的视图