Я делаю приложение для одного из моих классов, проекта, который мы должны выбрать для себя. Прямо сейчас это в основном работает, за исключением нескольких вещей здесь и там. Одной из таких вещей является то, что требуется 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);
}
}
Если есть какой-либо другой код, который вам может понадобиться, чтобы помочь мне решить эту проблему, дайте мне знать, Я думаю, что все должно быть здесь.