2

カスタムプロジェクトにBaseAdapterクラスがあります。今、私は を持っており、2つの画像ボタン (編集と削除) が私の行にあります。GetView() からのクエリを削除して呼び出すと、何も起こりません。以下のコードを参照してください:ListViewListViewTextViewlistViewnotifyDataSetChanged();

public View getView(最終的な int 位置、View convertView、ViewGroup parentView) {

    ViewHolder holder ; 
    holder = new ViewHolder();
    convertView = mInflater.inflate(R.layout.local_jobs_list_row , null);

    holder.job_name = (TextView) convertView.findViewById(R.id.txt_job_name);
    holder.img_edit = (ImageButton) convertView.findViewById(R.id.icon_edit_job);
    holder.img_delete = (ImageButton) convertView.findViewById(R.id.icon_delete_job);

    convertView.setTag(holder);

    holder.img_delete.setTag(itemDetailsrrayList.get(position).getLocal_job_id());
    holder.img_delete.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(final View v) {

            db.open();
            db.deleteLocalJob(String.valueOf(v.getTag()));
            db.close();
            notifyDataSetChanged();

        }
    });

    holder.job_name.setText(itemDetailsrrayList.get(position).getLocal_job_name());


    return convertView;
}

ここでnotifyDatasetChanged()動作していません ......誰か私がミススタックを作っている場所を教えてください。

4

2 に答える 2

7

notifyDatasetChanged()で変更を行うと機能しますitemDetailsrrayList。ArrayList から項目を削除せずにデータベース操作のみを行っています。ArrayList からも項目を削除します。それが動作します。

于 2013-06-27T12:14:21.720 に答える
4

BaseAdapterメソッドを確認する

registerDataSetObserver(DataSetObserver observer) 
unregisterDataSetObserver(DataSetObserver observer) 

オーバーライドされません。

于 2014-10-31T17:02:04.997 に答える