Я внедрил функции поиска в пользовательском списке представления в моем приложении. My problem is that I am getting this error (just on the real phones, not the virtuals):
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
I don't understand why on virtual devices Функциональность поиска работает как очарование. Где лежит проблема? < /P>
Это мой код: < /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
Почему я получаю список, нуждающийся на моем телефоне, а не на виртуальных устройствах? ⇐ Android
Форум для тех, кто программирует под Android
1746122164
Anonymous
Я внедрил функции поиска в пользовательском списке представления в моем приложении. My problem is that I am getting this error (just on the real phones, not the virtuals):
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
I don't understand why on virtual devices Функциональность поиска работает как очарование. Где лежит проблема? < /P>
Это мой код: < /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;
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79600154/why-i-am-getting-the-list-is-null-on-my-phone-and-not-on-the-virtual-devices[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия