0

リストがロードされた後、このリストビューからチェックボックスのステータス (チェックされている/チェックされていない) を取得するにはどうすればよいですか?

アダプターの getview メソッドをオーバーライドして、リストがいつロードされるかを確認する方法は知っていますが、そうではありません。

私が必要とするのは、リストがロードされ、ユーザーがリスト内のアイテムをチェック/チェック解除し、メニューからバックアップまたは削除ボタンを押した後にステータスを取得することです。

ここに画像の説明を入力

ありがとうございました。

4

2 に答える 2

0

あなたの質問はあまりにも漠然としています..あなたが提供した情報の量で私が答えることができるのは、それをアダプターに入れることだけです:

chkBox = (CheckBox) findViewById(R.id.chkBox);

    chkIos.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
                //is chkBox checked?
        if (((CheckBox) v).isChecked()) {
            Toast.makeText(MyAndroidAppActivity.this,
               "result:", Toast.LENGTH_LONG).show();
        }

      }
    });
于 2013-06-02T07:19:04.690 に答える
0

あなたはそのように試すことができます

 @Override
      public View getView(int position, View convertView, ViewGroup parent) {

       ViewHolder holder = null;
       Log.v("ConvertView", String.valueOf(position));

       if (convertView == null) {
       LayoutInflater vi = (LayoutInflater)getSystemService(
         Context.LAYOUT_INFLATER_SERVICE);
       convertView = vi.inflate(R.layout.country_info, null);

       holder = new ViewHolder();
       holder.code = (TextView) convertView.findViewById(R.id.code);
       holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
       convertView.setTag(holder);

        holder.name.setOnClickListener( new View.OnClickListener() {
         public void onClick(View v) {
          CheckBox cb = (CheckBox) v ;
          Country country = (Country) cb.getTag();
          Toast.makeText(getApplicationContext(), "Clicked on Checkbox: " + cb.getText() +
           " is " + cb.isChecked(),Toast.LENGTH_LONG).show();
          country.setSelected(cb.isChecked());
         }
        });
       }
       else {
        holder = (ViewHolder) convertView.getTag();
       }

       Country country = countryList.get(position);
       holder.code.setText(" (" +  country.getCode() + ")");
       holder.name.setText(country.getName());
       holder.name.setChecked(country.isSelected());
       holder.name.setTag(country);

       return convertView;

      }
于 2013-06-02T07:26:22.553 に答える