我有三项活动' a'' b'和' c'如下所示。 活动' a'当按钮(button_a)被点击到活动' b时,发送一个值(即1)。 活动' b'获取值并显示它,稍后点击按钮(暂停),活动' c'显示。 在活动' c中,当我们点击播放按钮时,不显示值(即1)。
那么如何将价值显示回活动' b'单击播放按钮后?
活动' a':
Button button_a = (Button) findViewById(R.id.button_a);
button_a.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(aActivity.this, bActivity.class);
i.putExtra("value", "1");
startActivity(i);
}
});
Button button_b = (Button) findViewById(R.id.button_b);
button_b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(aActivity.this, bActivity.class);
i.putExtra("value", "2");
startActivity(i);
}
});
活动' b':
TextView levelName = (TextView) findViewById(R.id.value);
Intent i = getIntent();
String level = i.getStringExtra("value");
levelName.setText(level);
Button pause = (Button) findViewById(R.id.pause);
pause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(b.this, c.class);
startActivity(i);
}
});
活动' c':
Button play = (Button) findViewById(R.id.play);
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(c.this, b.class);
startActivity(i);
}
});
答案 0 :(得分:0)
您正在从“c”活动再次调用“b”活动,该活动正在创建活动的新实例,所以此时活动堆栈看起来像这样
a - > b(有价值) - > c - > b(没有值的b的新实例)
因此,不要再尝试加载“b”活动,只需完成活动“c”,以便活动堆栈变为
a - > b(有价值)
实施例
Button play = (Button) findViewById(R.id.play);
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
});
已添加:请参阅 Task and Back Stack