Делает 2 щелчка Enter, чтобы получить ответ в обзоре переработчика - PullRequest
0 голосов
/ 25 апреля 2020

Я делаю приложение для одного из моих классов, проекта, который мы должны выбрать для себя. Прямо сейчас это в основном работает, за исключением нескольких вещей здесь и там. Одной из таких вещей является то, что требуется 2 или 3 нажатия кнопки ввода, чтобы приложение вернуло окно повторной проверки с обновленной информацией.

public View.OnKeyListener search = new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        searchItem = "";//clears it out before the use of it

        if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER))//only executes when the ENTER key is hit
        {
            if(searchItem != searchBar.getText().toString())//as long as the bar isn't empty
            {
                searchItem = searchBar.getText().toString();//grabs the search term and puts it in the variable

            }

            // hide the virtual keyboard
            ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(v.getWindowToken(), 0);

            //clear out the recyclerview
            clearRecycler();

            //API Call one
            goGetSearch(searchItem, searchType);
            return true;
        }
        return false;
    }
};

Вот метод clearRecycler, который я вызываю. Я удалил элементы, используя циклы for, потому что .clear по какой-то причине не работал правильно для меня.

public void clearRecycler()
    {
        int size = details.size();
        if (size > 0)
        {
            for(int i = 0; i < size; i++)
            {
                details.remove(0);//arraylist
            }
            for(int i = 0; i < OnlyIds.size(); i++)
            {
                OnlyIds.remove(0);//arraylist
            }
            myAdapter.notifyItemRangeRemoved(0, size);
        }
    }

Если есть какой-либо другой код, который вам может понадобиться, чтобы помочь мне решить эту проблему, дайте мне знать, Я думаю, что все должно быть здесь.

1 Ответ

0 голосов
/ 26 апреля 2020

Вы неправильно сравниваете строки

Вы не должны использовать == Вы должны использовать .equals():

.........

if(!searchBar.getText().toString().equals(searchItem))//as long as the bar isn't empty
{
searchItem = searchBar.getText().toString();//grabs the search term and puts it in the variable
}
.........
.........
...