如何将按钮用于多个列表视图(用于多个选项)

时间:2018-12-31 18:55:30

标签: android listview

我正在使用多个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语句,则会出现相同的问题。谈论陈述的第一句,即“选择您的选择...”是完全可行的。如何摆脱这种情况并转到正确的页面?

2 个答案:

答案 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列表。
只要您选择任何人,然后单击“确定/肯定”按钮,就可以将其重定向到您想要的任何位置。