2016-04-12 17 views
1

私はFragmentにリストビューを持ち、そこにはアイテムをチェックすることができ、クリックされたアイテムを示すボタンがあります。しかし、アイテムのチェックを外してボタンを押すと、まだチェックされているように表示されます。何が問題を解決することができますか?ListViewのOnClick Buttonが正しく機能していません

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view=inflater.inflate(R.layout.feat, container, false); 
    final ListView list=(ListView)view.findViewById(R.id.listView1); 
    final Button button=(Button)view.findViewById(R.id.button1); 
    list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    list.setItemChecked(4, true); 

    ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_multiple_choice,items); 
    list.setAdapter(adapter); 
    SparseBooleanArray checked = list.getCheckedItemPositions(); 

    button.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View arg0) { 
      switch (arg0.getId()) { 
       case R.id.button1: 
        SparseBooleanArray a = list.getCheckedItemPositions(); 
        if (checked(a) > 0) { 
         String vCheckedList = ""; 
         for (int i = 0; i < list.getAdapter().getCount(); i++) { 
          if (a.valueAt(i) && i < list.getAdapter().getCount() && a.size() > 1) 
           vCheckedList += list.getAdapter().getItem(a.keyAt(i)) + "\n"; 
          else if (a.valueAt(i)) 
           vCheckedList += list.getAdapter().getItem(a.keyAt(i)); 
         } 
         Toast.makeText(getActivity().getApplicationContext(), vCheckedList + " is checked", Toast.LENGTH_SHORT).show(); 
         a.clear(); 
        } else 
         Toast.makeText(getActivity().getApplicationContext(), "No Item is Selected", Toast.LENGTH_SHORT).show(); 
        break; 
       default: 
        break; 
      } 
     } 
    }); 

    return view; 
} 

そして、ここでされているXML: `

<!-- TODO: Update blank fragment layout --> 
<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="382dp"> 
</ListView> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Search" 
    android:id="@+id/button1" 
    android:layout_gravity="center_horizontal|bottom" /> 

` Here is how it looks

答えて

0

のonClick(中a.clear();メソッドを削除)すると、それがします作業。

+0

おかげで、試してみてください。 –

0

チェックボックスに設定されたXMLファイル内

android:clickable="true" 
android:focusable="false" 
+0

は:( を助けていないクリック可能とフォーカス可能。これが働かなければならないためのチェックボックスである私は同じ問題を抱えていると私はxmlファイルに入れてのOnClick –

+0

で間違ったものになるかもしれないようだ。ここでも働い –

関連する問題