У меня есть представление списка, и я хочу отображать записи с помощью фильтра. Предположим, у меня есть список массивов с именем costList. в списке расходов я могу отфильтровать один такой элемент

 if (!dealerexpautoa.getText().toString().equals("")){
                        ArrayList<ExpenseStatusModel.Expense> expensetypeList= new ArrayList<>();

                        for (int i = 0; i < expenseList.size(); i++)
                        {
                            if (expenseList.get(i).getDealerName().equalsIgnoreCase(dealerexpautoa.getText().toString())) {

                                expensetypeList.add(expenseList.get(i));
                            }
                        }
                        adapterExpenseView.filterList(expensetypeList);

                    }

Здесь получается идеальный результат, но когда мне нужно выполнить ту же задачу с двумя строками, это не дает мне правильного результата

У меня есть EditText и Spinner, я хочу сравнить их и распечатать в виде списка

else if(!spn.getSelectedItem().toString().equals("Select Type")
                            && !dealerexpautoa.getText().toString().equals("")){
                        ArrayList<ExpenseStatusModel.Expense> expensetypeList= new ArrayList<>();

                        for (int i = 0; i < expenseList.size(); i++)
                        {
                            if (expenseList.get(i).getDealerName().equalsIgnoreCase(dealerexpautoa.getText().toString()) &&
                                    expenseList.get(i).getExpenseType().equalsIgnoreCase(spn.getSelectedItem().toString())) {

                                expensetypeList.add(expenseList.get(i));
                            }
                        }
                        adapterExpenseView.filterList(expensetypeList);

                    }
0
Sachin Solanki 15 Сен 2018 в 08:51

2 ответа

Лучший ответ

Выражение условия в ветви if:

!dealerexpautoa.getText().toString().equals("")  

А выражение условия в ветви else -

!spn.getSelectedItem().toString().equals("Select Type")
                            && !dealerexpautoa.getText().toString().equals("")

Эти два выражения не являются взаимоисключающими, только текст dealerexpautoa равен пустой строке, он может входить в ветвь else, но в ветке else условие требует, чтобы текст dealerexpautoa не был равен пустой строке, поэтому это противоречит ,

1
navylover 15 Сен 2018 в 06:07

Вы забыли написать, если в вашем заявлении else

else if(!spn.getSelectedItem().toString().equals("Select Type")
                            && !dealerexpautoa.getText().toString().equals("")){
                        ArrayList<ExpenseStatusModel.Expense> expensetypeList= new ArrayList<>();

                        for (int i = 0; i < expenseList.size(); i++)
                        {
                            if (expenseList.get(i).getDealerName().equalsIgnoreCase(dealerexpautoa.getText().toString()) &&
                                    expenseList.get(i).getExpenseType().equalsIgnoreCase(spn.getSelectedItem().toString())) {

                                expensetypeList.add(expenseList.get(i));
                            }
                        }
                        adapterExpenseView.filterList(expensetypeList);

                    }
1
Kevin Kurien 15 Сен 2018 в 06:09