سلام وقت بخیر
چطوری میتونم کانورت شدن ویو رو غیر فعال کنم ولی روی هر چک باکسی هم که کلیک میکنم وضعیتش بعد اسکرول حفظ بشه
روی هر گزینه ای که کلیک می کنم بعد اسکرول روی آیتم نظیرش اعمال میشه
شما کافیست به ازای هربار فراخوانی شدن متد GetView یک ویو جدید معرفی کنید و دست به convertview نزنید
درسته ولی اینجوری وقتی اسکرول میشه بازم ویوی جدید ساخته میشه و چک باکسای قبلی رو که چک شده از دست میدم
public class MyCustomBaseAdapter extends BaseAdapter implements OnCheckedChangeListener { private static ArrayList<SearchResults> searchArrayList; ViewHolder holder; private LayoutInflater mInflater; Editor editor; Context context; public MyCustomBaseAdapter(Context context, ArrayList<SearchResults> results) { searchArrayList = results; mInflater = LayoutInflater.from(context); } public int getCount() { return searchArrayList.size(); } public Object getItem(int position) { return searchArrayList.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { SharedPreferences sharedPrefs = context.getSharedPreferences("sharedPrefs", Context.MODE_PRIVATE); if (convertView == null) { convertView = mInflater.inflate(R.layout.custom_row_view, null); holder = new ViewHolder(); holder.txtName = (TextView) convertView.findViewById(R.id.name); holder.cB = (CheckBox)convertView.findViewById(R.id.cb_category); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } editor = sharedPrefs.edit(); holder.txtName.setText(searchArrayList.get(position).getName()); holder.cB.setChecked(sharedPrefs.getBoolean("CheckValue"+position, false)); holder.cB.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { editor.putBoolean("CheckValue"+position, isChecked()); editor.commit(); }}); return convertView; } static class ViewHolder { TextView txtName; CheckBox cB; } }
از ویو هولدر باید استفاده کنم واسه رفع این مشکل؟
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)