1

カスタマイズされたリスト ビューに取り組んでいます

これは私のアプリのスクリーンショットです

ここに私のアダプタークラスがあります

public class MenubaseAdapter extends BaseAdapter {
private static ArrayList<MenuItem> searchMenuItemArraylist;
private LayoutInflater menuInflater;
public MenubaseAdapter( Context context,ArrayList<MenuItem> results) {
    searchMenuItemArraylist=results;
    menuInflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return searchMenuItemArraylist.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub

               iewHolder holder;
            if(convertView==null)
            {
                convertView=menuInflater.inflate(R.layout.menu_list, null);
                holder=new MenuViewHolder();

                holder.txtItemName=(TextView)convertView.findViewById(R.id.textView_menuitem);
                holder.txtItemPrice=(TextView)convertView.findViewById(R.id.textView_itemprice);
                holder.txtItemQty=(TextView)convertView.findViewById(R.id.TextView_itemQty);
                holder.selectChk=(CheckBox)convertView.findViewById(R.id.checkBox_menuchk);



                convertView.setTag(holder);
            }else {
                holder=(MenuViewHolder)convertView.getTag();
            }
            holder.txtItemName.setText(searchMenuItemArraylist.get(position).getMenuItemname());
            holder.txtItemPrice.setText(searchMenuItemArraylist.get(position).getMenuItemPrice());
            holder.txtItemQty.setText(searchMenuItemArraylist.get(position).getItemQty());
            holder.selectChk.setChecked(searchMenuItemArraylist.get(position).isSelected());
holder.selectChk.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                        //how to select the listview item ?
                    }
                });

 return convertView;

        }

static class MenuViewHolder
{
    TextView txtItemName;
    TextView txtItemPrice;
    TextView txtItemQty;
    CheckBox selectChk;
}

}

今私の問題は、foodmenuitems をクリックするとリストが選択され、チェックボックスがチェックされることです。

4

1 に答える 1

4

選択したアイテムを追跡するには、選択したアイテムを追加または削除するオブジェクトの一時的な配列リストまたは文字列の単純な配列リストを取得します。

例えば

一時的な配列リストが 1 つありますArrayList<MenuItem> tempList;

getview メソッドでは、2 つの変更を行う必要があります。

  1. 現在のオブジェクトが一時配列リストにあるかどうかを確認します。現在の要素が一時配列リストにある場合は、チェックボックスのステータスを true に設定し、そうでない場合は false に設定します。
  2. チェックボックスの onClick メソッドでは、最初にチェックボックスのステータスを確認します。チェックボックスがチェックされている場合は、現在の要素が一時配列リストにあるかどうかを確認するか、そうでない場合は現在の要素を配列リストに追加します。チェックボックスのステータスがチェックされていない場合は、現在の要素の一時配列リストをチェックインし、一時配列リストに存在する場合はリストから削除し、その後notifyDatasetChangedメソッドを呼び出します
于 2012-04-18T11:28:56.023 に答える