2017-05-17 16 views
0

水平リストビューで複数のリスト項目を選択する方法。私は、リスト内の複数の項目を選択し、これらの値を配列に格納したいと考えています。リスト項目の色を選択または選択解除して変更し、選択したすべての値を配列に保存したい

 Async task to show sizelist 

     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 
      if (dialog != null) { 
       dialog.dismiss(); 
       dialog = null; 
      } 

      if (flag == 1) { 

       sizeAdapter = new SizeAdapter(Product.this, arraysize, "fonts/GeosansLight.ttf"); 
       list_size.setAdapter(sizeAdapter); 

       list_size.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

クラスにおける選択された項目の色HomeGS homeGS = arraysize.get(位置)を変更するためのコードと

     if (homeGS.getSelected()) { 

          homeGS.setSizeProduct(homeGS.getSizeProduct()); 
          homeGS.setSelected(false); 


         } else { 
          homeGS.setSizeProduct(homeGS.getSizeProduct()); 
          homeGS.setSelected(true); 
         } 

         arraysize.set(position, homeGS); 
         sizeAdapter.notifyDataSetChanged(); 
         size = arraysize.get(position).getSizeProduct(); 

        } 

       }); 


      } else if (flag == 0) { 


      } 

     } 

    } 

これは、選択したアイテムの背景とテキストの色を変更するための私のサイズアダプタコードです。

 if (oldData.get(position).getSelected()){ 

      holder.txt_name.setText(oldData.get(position).getSizeProduct()); 
      holder.txt_name.setBackgroundColor(Color.parseColor("#000000")); 
      holder.txt_name.setTextColor(Color.parseColor("#ffffff")); 

     }else { 

      holder.txt_name.setText(oldData.get(position).getSizeProduct()); 
      holder.txt_name.setBackgroundResource(R.drawable.btn_border); 
      holder.txt_name.setTextColor(Color.parseColor("#000000")); 

     } 
     return convertView; 

    } 

答えて

0

この

ArrayList<YourBean> listArray = new ArrayList<>(); 

のようなArrayListのは、それから、あなたのリスト

用データリスト作成するカスタムアダプタを作成します次に、あなたのリストについては、

public class YourBean { 

private String itemData; 
private boolean checked; 


public String getitemData() { 
    return itemData; 
} 

public void setitemData(String itemData) { 
    this.itemData= itemData; 
} 

public boolean isChecked() { 
    return checked; 
} 

public void setChecked(boolean checked) { 
    this.checked = checked; 
} 
} 

をこのようなBeanクラスを作成します

チェックボックスをオンにすると、このような位置でチェックされたブール値をtrueに設定します。

listArray.get(position).setChecked(true); 

他のarraylistにlistArrayのforループを実行させ、ブール値がtrueであるかどうかをチェックし、真であれば、それを別の配列リストに追加します。

+0

でも解決できない場合は、このリンクをクリックしてください。http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html – Anmol

0

使用すると、1つの項目データで、フィールドが選択されているかどうかを示すブール他でたbeanClassの助けを借りて、リストビューのArrayListのを作るために必要なすべての最初の。

選択した項目では、ブール値をtrueに変更する必要があります。これにより、選択した項目を処理するのに役立ちます。

新しいarraylistに選択したアイテムデータを追加する必要があるときはいつでも、リスト配列のforループを実行し、ブール値をチェックすることができます。

+0

共有コード –

関連する問題