根据点击按钮打开不同的活动android

时间:2014-11-29 19:17:54

标签: android android-intent android-activity

在我的开始(主页)屏幕上,我有3个按钮。 Button_1Button_2Button_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_2Button_3上得到了相同的结果。

2 个答案:

答案 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); 

应该没问题。