所以我有两个应用页面。该应用程序应该将pickedTask传递到第二页,然后它应该显示在下一页上。我得到的是在第二页的创建,没有任何textView分配给更改没有任何东西,而不是 fire 。 http://imgur.com/a/iymeW
第一页:
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);
}
答案 0 :(得分:1)
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);
}
您已创建了两个不同的Intent
个对象。 onCreate()
创建Intent
设置文本,但不对其进行任何操作。 goToTimerList()
创建Intent
并立即启动活动,但不设置任何额外内容。因为您已在每个函数本地声明了每个intent变量,所以即使它们具有相同的名称,它们也完全不相关。由于您不需要Intent
onCreate()
中的任何内容,因此您应该将所有逻辑放在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中使用变量。