Java 存储一个活动的意图,但启动不同的活动

Java 存储一个活动的意图,但启动不同的活动,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我是android新手,我有一个问题。我想存储活动的意图,但启动不同的活动。我有一个backgroundworker活动,它必须存储postAnnotationActivity的意图,但必须启动InstructionActivity。如果在PostAnnotationActivity中使用intentID.getStringExtra,则输出=null。有人能帮忙吗 来自Backgroundworker的部分代码: Intent intent = new Intent(conte

我是android新手,我有一个问题。我想存储活动的意图,但启动不同的活动。我有一个backgroundworker活动,它必须存储postAnnotationActivity的意图,但必须启动InstructionActivity。如果在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);
 Intent intentID = new Intent(context, InstructionsActivity.class);
 intentID.putExtra("ID", id);
 context.startActivity(intentID);
邮购活动的一部分:

    Intent intentID = getIntent();
    String getID = intentID.getStringExtra(BackgroundWorker.ID);
Intent intentID = getIntent();
String getID = intentID.getStringExtra("ID");

从说明活动中,我将使用
startActivity(新意图(此,ShowPaintingActivity.class)
转到startActivity,然后使用
startActivity(新意图(此,PostAnnotationsActivity.class))转到PostAnnotationActivity;
修改代码如下:

在Backgroundworker中:

        Intent intent = new Intent(context, InstructionsActivity.class);
        Intent intentID = new Intent(context, PostAnnotationsActivity.class);
        intentID.putExtra(ID, id);
        context.startActivity(intent);
 Intent intentID = new Intent(context, InstructionsActivity.class);
 intentID.putExtra("ID", id);
 context.startActivity(intentID);
在指导活动中:

 Intent intentID = getIntent();
 String getID = intentID.getStringExtra("ID");

 Intent intent = new Intent(context, ShowPaintingActivity.class);
 intent.putExtra("ID", getID);
 context.startActivity(intent);
在显示绘画活动中:

 Intent intentID = getIntent();
 String getID = intentID.getStringExtra("ID");

 Intent intent = new Intent(context, PostAnnotationActivity.class);
 intent.putExtra("ID", getID);
 context.startActivity(intent);
在邮购活动中:

    Intent intentID = getIntent();
    String getID = intentID.getStringExtra(BackgroundWorker.ID);
Intent intentID = getIntent();
String getID = intentID.getStringExtra("ID");

另一个更好的解决方案是,正如用户1375469所建议的,您可以将值保存到Backgroundworker中的首选项,然后从PostAnnotation活动中检索它。

修改代码如下:

在Backgroundworker中:

        Intent intent = new Intent(context, InstructionsActivity.class);
        Intent intentID = new Intent(context, PostAnnotationsActivity.class);
        intentID.putExtra(ID, id);
        context.startActivity(intent);
 Intent intentID = new Intent(context, InstructionsActivity.class);
 intentID.putExtra("ID", id);
 context.startActivity(intentID);
在指导活动中:

 Intent intentID = getIntent();
 String getID = intentID.getStringExtra("ID");

 Intent intent = new Intent(context, ShowPaintingActivity.class);
 intent.putExtra("ID", getID);
 context.startActivity(intent);
在显示绘画活动中:

 Intent intentID = getIntent();
 String getID = intentID.getStringExtra("ID");

 Intent intent = new Intent(context, PostAnnotationActivity.class);
 intent.putExtra("ID", getID);
 context.startActivity(intent);
在邮购活动中:

    Intent intentID = getIntent();
    String getID = intentID.getStringExtra(BackgroundWorker.ID);
Intent intentID = getIntent();
String getID = intentID.getStringExtra("ID");

另一个更好的解决方案是,正如user1375469所建议的,您可以将值保存到Backgroundworker中的首选项,然后从PostAnnotation活动中检索它。

尝试将您的意图存储为字符串,并使用共享首选项来存储/检索您的意图。就像这样

    SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();

    editor.putString("StoredIntent", "String you want to store here");
    editor.commit();

尝试将您的意图存储为字符串,并使用共享首选项来存储/检索您的意图

    SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();

    editor.putString("StoredIntent", "String you want to store here");
    editor.commit();

由于您没有启动活动,因此您的输出为空

 context.startActivity(intentID);  
当您将数据传递到其中时..
您想转到我的InstructionActivity,但已经为PostAnnotationActivity存储了BackgroundWorker的一些数据….

因此,您必须为此使用SharedReference….

您的输出为空,因为您没有启动活动,即

 context.startActivity(intentID);  
当您将数据传递到其中时..
您想转到我的InstructionActivity,但已经为PostAnnotationActivity存储了BackgroundWorker的一些数据….

因此,您必须为此目的使用SharedReference…

您发布的代码将启动InstructionActivity。请说明如何启动PostAnnotationActivity。我已更新了问题,因此基本上您希望传递额外的意图(=id值)到PostAnnotationsActivity?有什么原因不想使用SharedReferences吗?因为我不熟悉SharedReferences;)。我会看一看的。根据您发布的代码,您将开始指导活动。请说明如何启动PostAnnotationActivity。我已更新了问题,因此基本上您希望将额外的意图(=id值)传递给PostAnnotationActivity?有什么理由不想使用SharedReferences吗?因为我不熟悉SharedReferences;)。我会看一看。然后我直接从Backgroundworker转到PostAnnotationsActivity?我想转到InstructionActivity,但已经为PostAnnotationActivity存储了BackgroundWorker的一些数据是的,我认为这将解决我的问题,但我将查看ShardReferences。谢谢那么我直接从后台工作人员转到PostAnnotationsActivity?我想转到InstructionActivity,但已经为PostAnnotationActivity存储了BackgroundWorker的一些数据是的,我认为这将解决我的问题,但我将查看ShardReferences。谢谢