Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在通过意图传递字符串时有困难_Java_Android - Fatal编程技术网

Java 在通过意图传递字符串时有困难

Java 在通过意图传递字符串时有困难,java,android,Java,Android,所以我有两个应用程序页面。应用程序应该将拾取的任务传递到第二页,然后在下一页显示。我得到的是在第二页的创建nothing时,分配给change的textView将变为nothing,而不是fire。 第一页: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

所以我有两个应用程序页面。应用程序应该将拾取的任务传递到第二页,然后在下一页显示。我得到的是在第二页的创建nothing时,分配给change的textView将变为nothing,而不是fire

第一页:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent goodIntentions = new Intent(getApplicationContext(), TimerList.class);
    goodIntentions.putExtra("pickedTask", "Fire");
}

public void goToTimerList(View view){
    Intent goodIntentions = new Intent(getApplicationContext(), TimerList.class);
    startActivity(goodIntentions);
}
第二页:

        TextView mahTextView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(com.example.cluel.oc.R.layout.activity_timer_list);
    mahTextView = (TextView) findViewById(R.id.taskText);

}

public void Test(View view){
    Intent goodIntentions = getIntent();
    String mahString = goodIntentions.getStringExtra("pickedTask");
    mahTextView.setText(mahString);
}
您已经创建了两个不同的
Intent
对象
onCreate()
创建一个
Intent
设置文本,但在其他方面对其不做任何操作
goToTimerList()
创建一个
Intent
并立即用它启动一个活动,但不设置任何额外内容。因为您已经在本地为每个函数声明了每个意图变量,所以即使它们具有相同的名称,它们也是完全不相关的。由于您不需要
onCreate()
中的
Intent
进行任何操作,因此您只需在
goToTimerList()中设置启动第二个活动的所有逻辑,包括在Intent中设置文本:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void goToTimerList(View view){
    Intent goodIntentions = new Intent(getApplicationContext(), TimerList.class);
    goodIntentions.putExtra("pickedTask", "Fire");
    startActivity(goodIntentions);
}

我建议您学习局部变量和字段。这两个主题将帮助您更多地了解如何在Java中使用变量。

您真的试图使用意图在同一应用程序中的多个视图之间传递数据吗?意图是指在多个应用程序之间传递数据。如果只有一个应用程序可以显示多个视图,则不需要使用意图。但是,在任何情况下,您的第二个视图都不会收到任何文本,因为您没有将任何文本放入您开始的意图中。你的代码创建了两个独立的意图对象,一个有文本,一个没有文本,然后开始第二个意图(一个没有任何文本)。我试图通过多个活动传递数据。我在网上买了一些课程,他们就是这么说的。有更好的方法吗?可能是链接?“意图是在多个应用程序之间传递数据。”这是不正确的。意图也常用于在同一个应用程序中的两个活动之间传递数据。您应该在每个代码片段周围显示
类{…}
,以明确哪个代码在哪个类中。基本上使它看起来像项目中的.java文件。
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void goToTimerList(View view){
    Intent goodIntentions = new Intent(getApplicationContext(), TimerList.class);
    goodIntentions.putExtra("pickedTask", "Fire");
    startActivity(goodIntentions);
}