Почему я получаю список, нуждающийся на моем телефоне, а не на виртуальных устройствах?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему я получаю список, нуждающийся на моем телефоне, а не на виртуальных устройствах?

Сообщение Anonymous »

Я реализовал функции поиска в пользовательском списке представления в моем приложении. Моя проблема в том, что я получаю эту ошибку (только на реальных телефонах, а не на виртуальных): < /p>
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
< /code>
Я не понимаю, почему на виртуальных устройствах функциональность поиска работает как очарование. Где проблема лежит? Это мой код: < /p>
CustomAdapterShoppingList класс:
public class CustomAdapterShoppingList extends BaseAdapter implements Filterable {

List
list;
List listFiltered;
Context mContext;

public CustomAdapterShoppingList(@NonNull Context context, List products) {
this.list = products;
this.listFiltered = products;
this.mContext = context;
}

@Override
public int getCount() {
return listFiltered.size(); lastPosition)
? R.anim.up_from_bottom : R.anim.down_from_top);
convertView.startAnimation(animation);
lastPosition = position;

TextView number = convertView.findViewById(R.id.number);
number.setText(position + 1 + ".");

TextView name = convertView.findViewById(R.id.name);
name.setText(listFiltered.get(position).getProduktName());

return convertView;
}

@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
FilterResults filterResults = new FilterResults();
if (list == null) {
list = new ArrayList(listFiltered);
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) {
if (charSequence == null || charSequence.isEmpty()) {
filterResults.count = list.size();
filterResults.values = list;
} else {
List resultPrd = new ArrayList();
String searchStr = charSequence.toString().toLowerCase();

for (Product prd:list) {
if(prd.getProduktName().contains(searchStr)) {
resultPrd.add(prd);
}
filterResults.count = resultPrd.size();
filterResults.values = resultPrd;
}
}
}
return filterResults;
}

@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {

listFiltered = (List) filterResults.values;
notifyDataSetChanged();
}
};
return filter;
}
}

Затем вызов функциональности поиска в ShophingListictivity с этим кодом:
adapter = new CustomAdapterShoppingList(getApplicationContext(), products);
shoppingList.setAdapter(adapter);
adapter.notifyDataSetChanged();
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return false;
}
});


Подробнее здесь: https://stackoverflow.com/questions/796 ... al-devices
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»