2016-04-12 22 views
1

Ich habe eine Listenansicht in Fragment, wo Sie Elemente überprüfen können, und eine Schaltfläche, die zeigt, welche Elemente angeklickt werden. Aber wenn ich die Elemente abnehme und die Taste drücke, werden sie immer noch als markiert angezeigt. Was kann ein Problem lösen?OnClick Button in ListView funktioniert nicht korrekt

@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; 
} 

Und hier ist 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

Antwort

0

a.clear(); Methode in onClick entfernen() dann wird es Arbeit.

+0

dank versuchen, die funktionierte. –

0

Set für CheckBox in XML-Datei

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

hat :(nicht helfen Es scheint, es ist etwas falsch in OnClick –

+0

sein könnte ich gleiche Problem haben und ich in XML-Datei setzen, wo CheckBox für klickbare und fokussierbar ist. Dies muss arbeiten. Wieder –