在我的开始(主页)屏幕上,我有3个按钮。 Button_1
,Button_2
和Button_3
。它们都是相同的Activity B
。所以我需要根据主屏幕上的哪个按钮在第二次活动后打开不同的Activity C
。我可以使用2个按钮来制作它但是当我尝试使用elseif
的第三个按钮时,它无法正常工作。这是我尝试的方式。
主屏幕
Button_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("isButtonClicked",true);
startActivity(intent);
}
});
Button_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("button", true);
startActivity(intent);
}
});
Button_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("isButtonClicked",false);
startActivity(intent);
}
});
以下是SecondActivity
boolean isButton = getIntent().getBooleanExtra("isButtonClicked",false);
boolean button = getIntent().getBooleanExtra("button",true);
if(isButton)
{
Intent newActivity = new Intent(SecondActivity.this, ThirdActivity.class);
newActivity.putExtra("Position", Position);
newActivity.putExtra("resultServer", resultServer);
newActivity.putExtra("text", MyArrList.get(position).get("text").toString());
newActivity.putExtra("name", MyArrList.get(position).get("name").toString());
startActivity(newActivity);
}
else if (button)
{
Intent newActivity = new Intent(SecondActivity.this, FourthActivity.class);
newActivity.putExtra("Position", Position);
newActivity.putExtra("resultServer", resultServer);
newActivity.putExtra("id", MyArrList.get(position).get("id").toString());
startActivity(newActivity);
}
else
{
Intent newActivity = new Intent(SecondActivity.this, FifthActivity.class);
newActivity.putExtra("Position", Position);
newActivity.putExtra("resultServer", resultServer);
newActivity.putExtra("id", MyArrList.get(position).get("id").toString());
startActivity(newActivity);
}
正如您所看到的,对于所有3个按钮的第二个活动相同,然后我想加载不同的。如果我把它与if{}else{}
一起使用,即两个按钮工作正常。但现在我在Button_2
和Button_3
上得到了相同的结果。
答案 0 :(得分:3)
刚刚发现:
boolean button = getIntent().getBooleanExtra("button",true);
应始终返回true
。因为它的默认值设置为true
。因此,elseif
将始终有效..如果Button_1
未被点击!
修正:
boolean button = getIntent().getBooleanExtra("button",false);
答案 1 :(得分:2)
你有:
boolean button = getIntent().getBooleanExtra("button",true);
因此,在第2和第3选项中,此值将为true,因此这就是它的原因。
更改为:
boolean button = getIntent().getBooleanExtra("button",false);
应该没问题。