我是Android新手,我遇到了问题。我想存储一个活动的意图,但开始一个不同的活动。我有一个backgroundworker活动,必须存储postAnnotationActivity的意图,但必须启动InstructionsActivity。如果我在PostAnnotationActivity中使用intentID.getStringExtra
,那么输出= null
。有人可以帮忙吗?
Backgroundworker的部分代码:
Intent intent = new Intent(context, InstructionsActivity.class);
Intent intentID = new Intent(context, PostAnnotationsActivity.class);
intentID.putExtra(ID, id);
context.startActivity(intent);
PostAnnotationActivity的一部分:
Intent intentID = getIntent();
String getID = intentID.getStringExtra(BackgroundWorker.ID);
从说明活动我将使用startActivity(new Intent(this, ShowPaintingActivity.class)
转到StartActivty,然后使用startActivity(new Intent(this, PostAnnotationsActivity.class));
转到PostAnnotationActivity
答案 0 :(得分:1)
修改您的代码如下:
在Backgroundworker中:
Intent intentID = new Intent(context, InstructionsActivity.class);
intentID.putExtra("ID", id);
context.startActivity(intentID);
在InstructionsActivity中:
Intent intentID = getIntent();
String getID = intentID.getStringExtra("ID");
Intent intent = new Intent(context, ShowPaintingActivity.class);
intent.putExtra("ID", getID);
context.startActivity(intent);
在ShowPaintingActivity中:
Intent intentID = getIntent();
String getID = intentID.getStringExtra("ID");
Intent intent = new Intent(context, PostAnnotationActivity.class);
intent.putExtra("ID", getID);
context.startActivity(intent);
在PostAnnotationActivity中:
Intent intentID = getIntent();
String getID = intentID.getStringExtra("ID");
另一个更好的解决方案是,如用户1375469建议的那样,您可以将值保存到BackgroundWorker中的首选项,然后从PostAnnotation Activity中检索它。
答案 1 :(得分:1)
尝试将Intent存储为字符串,并使用共享首选项来存储/检索您的Intent。像这样。
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("StoredIntent", "String you want to store here");
editor.commit();
答案 2 :(得分:0)
您的输出为空,因为您没有启动活动,即
context.startActivity(intentID);
当你将数据传递给它时..
并且您想要转到我的InstuctionsActivity但已经存储了一些来自BackgroundWorker for PostAnnotationActivity的数据....
因此,您必须为此目的使用SharedPreference ....