过滤后,Android Custom ArrayAdapter不会刷新的问题可能是因为在更新数据源后没有正确地通知ArrayAdapter进行刷新。以下是一种可能的解决方案:
notifyDataSetChanged()
方法,通知ArrayAdapter数据已更改。arrayAdapter.notifyDataSetChanged();
listView.setAdapter(arrayAdapter);
getView()
方法中正确地绑定数据。@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = convertView.findViewById(R.id.text_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.textView.setText(getItem(position));
return convertView;
}
static class ViewHolder {
TextView textView;
}
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
arrayAdapter.notifyDataSetChanged();
listView.setAdapter(arrayAdapter);
}
});
以上是一些可能的解决方案,具体解决方案需要根据实际情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云