بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در جستجو در listView
سلام
مشکل من اینه که وقتی کلمه ای رو در EditBox جستجو میکنم با رسیدن به خط carsListData.clear(); هم carsListData خالی میشه هم arraylist و بنابراین لیست من خالی میشه و هیچ متنی داخلش باقی نمی مونه تا جستجو انجام بشه.
برای رفع این مشکل باید چه کنم؟
public class CustomAdapter2 extends BaseAdapter {
private Context mContext;
private ArrayList<HashMap<String, Object>> carsListData = null;
private ArrayList<HashMap<String, Object>> arraylist;
public CustomAdapter2(ProductActivity productActivity, ArrayList<HashMap<String, Object>> Data) {
carsListData = Data;
this.arraylist = new ArrayList<HashMap<String, Object>>();
this.arraylist.addAll(carsListData);
arraylist = Data;
mContext = productActivity;
}
public int getCount() {
return carsListData.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null)
vi = inflater.inflate(R.layout.activity_product_listview, null);
TextView title = (TextView)vi.findViewById(R.id.title);
ImageView thumb_image=(ImageView)vi.findViewById(R.id.img);
TextView price = (TextView)vi.findViewById(R.id.price);
TextView state = (TextView)vi.findViewById(R.id.state);
HashMap<String, Object> song = carsListData.get(position);
title.setText(song.get("produtTitle").toString());
thumb_image.setImageBitmap((Bitmap) song.get("produtImage"));
price.setText(song.get("produtPrice").toString());
state.setText(song.get("produtState").toString());
return vi;
}
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
//arraylist = carsListData;
carsListData.clear();
//carsListData.clear();
if (charText.length() == 0) {
carsListData.addAll(arraylist);
}
else
{
for (int i=0 ; i<carsListData.size() ; i++)
{
HashMap<String, Object> l = carsListData.get(i);
if (((String) l.get("produtTitle")).toLowerCase(Locale.getDefault()).contains(charText))
arraylist.add(carsListData.get(i));
}
carsListData = arraylist;
}
notifyDataSetChanged();
}
}
0
0
کد رو کامل نخوندم ولی arraylist = Data; رو همون اوایا حذف کن. وقتی هر دو یه مکان حافظه دارن طبیعیه رفتار مشابه داشته باشن (11 سال پیش)
0
0
درسته حق با شماست. با حذف گردن arraylist = Data; و اضافه کردن خط زیر مشکلم حل شد. (11 سال پیش)
0
0
public CustomAdapter2(ProductActivity productActivity, ArrayList Data) {
carsListData = Data;
this.arraylist = new ArrayList();
if(carsListData.size() != 0)
this.arraylist.addAll(carsListData);
mC
} (11 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .