مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

غیر فعال recycleing در لیست ویو( غیر فعال کردن convertview)

  • چهارشنبه 13 اردیبهشت 1396
  • 12:36
تشکر میکنم

سلام وقت بخیر

چطوری میتونم کانورت شدن ویو رو غیر فعال کنم ولی روی هر چک باکسی هم که کلیک میکنم وضعیتش بعد اسکرول حفظ بشه

روی هر گزینه ای که کلیک می کنم بعد اسکرول روی آیتم نظیرش اعمال میشه

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 اردیبهشت 1396
  • 12:38

شما کافیست به ازای هربار فراخوانی شدن متد GetView یک ویو جدید معرفی کنید و دست به convertview نزنید

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

  • چهارشنبه 13 اردیبهشت 1396
  • 12:44

درسته ولی اینجوری وقتی اسکرول میشه بازم ویوی جدید ساخته میشه و چک باکسای قبلی رو که چک شده از دست میدم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 اردیبهشت 1396
  • 12:50
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;
    }

}

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

  • چهارشنبه 13 اردیبهشت 1396
  • 13:13

از ویو هولدر باید استفاده کنم واسه رفع این مشکل؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)