0

実装したいのですが、そのときにリストビューを選択すると、チェックボックスがオンになります。 ここに画像の説明を入力してください

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;

    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_row, null);

        holder = new ViewHolder();
        holder.checkbox = (CheckBox) convertView.findViewById(R.id.mycheckbox);
        holder.text = (TextView) convertView.findViewById(R.id.mytext);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    MyList mylist = mItems.get(position);

holder.text.setText(mylist.getMyText());


    holder.checkbox.setChecked(mChecked.get(position));
holder.chkItem.setChecked(mChecked.get(position));
    holder.chkItem.setOnCheckedChangeListener(new OnCheckedChangeListener()
     {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            mChecked.set((Integer) buttonView.getTag(),isChecked);

        }
     });

    return convertView;
}

static class ViewHolder {
    CheckBox checkbox;
    TextView text;
}
}

ここではチェックボックスの項目のみが選択されていますが、リストビューをクリックすると、チェックボックスが選択されます。同じ質問をもう一度する理由は、アイテムクリックリスナーを介してリストビュークリックイベントを試したが、機能しないことを意味します。setFocusable(true)も試しましたが、機能しませんでした。

4

4 に答える 4

1

ここに私の答え、

convertView .setOnClickListener(new OnClickListener() {         

        public void onClick(View v) {
            // TODO Below is hardcoded to get item at index 1
            // This needs to be changed to fool-proof
            CheckBox checkBox = ((CheckBox)v.getTouchables().get(1));
            checkBox.setChecked(! checkBox.isChecked()); 

            System.out.println("Listview clicked");
        }
    });
于 2012-06-04T08:16:57.963 に答える
0

リストオブジェクトでonitemclicklistenerを使用します。行が選択される場合は、チェックボックスが選択されます。

于 2012-04-27T12:35:30.477 に答える
0

onItemClickListenerをリストに実装する必要があります。

list.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
              ViewHolder yourView = (ViewHolder) view;
              //do whatever you want with your view..
            }
    });
于 2012-04-27T12:37:21.397 に答える
0

リストアイテムのXMLレイアウトでチェックボックスをfocusable="false"としてマークします。次に、リストビューのonClickListenerを処理し、チェックボックスのチェック状態を切り替えます。

focusable = "false"がないと、チェックボックスはリストビューからクリックを盗みます。

于 2012-05-22T17:31:38.010 に答える