我正在使用多个ListView为最终用户创建多个选项,现在我必须使用按钮将用户定向到他/她所需的页面。这是我的代码-
spinner = (Spinner) findViewById(R.id.spinner);
spinner1 = (Spinner) findViewById(R.id.spinner1);
String[] List_view1 = new String[]{
"Choose your option...",
"All",
"1",
"2"
};
String[] List_View2 = new String[]{
"Choose your option...",
"All",
"4",
"5",
"6"
};
final List<String> list= new ArrayList<>(Arrays.asList(List_view1));
final List<String> list1= new ArrayList<>(Arrays.asList(List_View2));
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
String spi = spinner.getSelectedItem().toString();
String spi1 = spinner1.getSelectedItem().toString();
if (spi == "Choose your option..." || spi1 == "Choose your option...")
{
Toast.makeText(MainActivity.this, "Please make sure you have given every input, " += " and not leaving even one empty", Toast.LENGTH_SHORT).show();
}
if (spi == "1" || spi == "2" || spi1 == "5" || spi1 == "6")
{
Intent intent = new Intent(getApplicationContext(), CollegeListAES1.class);
startActivity(intent);
}
if (spi == "2" || spi == "3" || spi1 == "4")
{
Intent intent = new Intent(getApplicationContext(), CollegeListAES2.class);
startActivity(intent);
}
break;
}
}
});
}
现在,如果我选择2和4,它将转到CollegeListAES2,但它将转到CollegeListAES1。令人惊讶的是,如果我再这样编写一个if语句,则会出现相同的问题。谈论陈述的第一句,即“选择您的选择...”是完全可行的。如何摆脱这种情况并转到正确的页面?
答案 0 :(得分:1)
这是因为您的if语句仅包含OR运算符。 就像您说的那样,当您选择2和4(spi = 2,spi1 = 4)时,由于if是,您的第一个if语句为true:
if (spi == "1" || spi == "2" || spi1 == "5" || spi1 == "6")
因此第二个返回true,其他值将不再检查-> spi = 2,然后它将启动CollegeListAES1活动。
您需要将if语句与OR和AND运算符组合在一起。
答案 1 :(得分:0)
试试这个,
使用AlertDialog创建项目列表并将其放入singlechoiceItems列表。
只要您选择任何人,然后单击“确定/肯定”按钮,就可以将其重定向到您想要的任何位置。