2016-03-23 12 views
0

Ich versuche, eine Navigationsleiste mit einer Listenansicht zu erstellen, die Kontrollkästchen enthält. wie jeder Listenpunkt. das habe ich bisher versucht, aber ich habe große Schwierigkeiten.Liste mit CheckBoxen in einer Navigationsleiste

was ich suche, ist ein Prefence-Menü erstellen. heißt "Bluetooth Ein/Aus (Checkbox)" etc

Heres Meine Haupttätigkeit:

public class MainActivity extends ActionBarActivity { 

//Navigation Drawer Member Variables 
private ListView mDrawerList; 
private DrawerLayout mDrawerLayout; 
private ArrayAdapter<String> mAdapter; 
private ActionBarDrawerToggle mDrawerToggle; 
private String mActivityTitle; 

//Navigation Drawer 

    mDrawerList = (ListView)findViewById(R.id.navList); 
    mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 

    mActivityTitle = getTitle().toString(); 

    addDrawerItems(); 
    setupDrawer(); 

private void addDrawerItems() { 
    String[] osArray = { "Bluetooth", "Reply to Calls", "Reply to sms", "customise message"}; 
    mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, osArray); 
    mDrawerList.setAdapter(mAdapter); 

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

      CheckedTextView ctv = (CheckedTextView)view; 
      if (ctv.isChecked()){ 
       Toast.makeText(getApplicationContext(),"uncheckd",Toast.LENGTH_LONG).show(); 
      } 
      else { 
       Toast.makeText(getApplicationContext(),"checked",Toast.LENGTH_LONG).show(); 
      } 

     } 
    }); 
} 



    mDrawerToggle.setDrawerIndicatorEnabled(true); 
    mDrawerLayout.setDrawerListener(mDrawerToggle); 
} 

Im erhalte eine Fehlermeldung sagen, dass der Adapter eine Textansicht muss. Jede Hilfe würde sehr geschätzt werden. Dank

+0

Hallo, können Sie bitte den kompletten Code teilen? – AsfK

Antwort

2

Der Fehler, den Sie bekommen ist beacuse Sie eine Textview statt R.layout.list_item passieren müssen, das folgende Beispiel überprüfen:

mAdapter = new ArrayAdapter<String>(this, R.layout.my_textview, osArray); 

eine Listview erstellen mit Kontrollkästchen die ChoiceMode auf "CHOICE_MODE_MULTIPLE"

String[] osArray = {"Bluetooth", "Reply to Calls", "Reply to sms", "customise message"}; 
    ListView listView = (ListView) findViewById(R.id.listView); 
    ArrayAdapter arrayAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_multiple_choice, osArray); 

    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    listView.setAdapter(arrayAdapter); 

Ergebnis: enter image description here

+0

Vielen Dank !! :) Es dauerte eine Woche :(So weit zu kommen, es tut mir leid und ein bisschen peinlich zu sagen. Wie könnte ich es so, dass wenn Sie tippen Sie die Wörter Bluetooth oder irgendwo sonst in der Bluetooth-Zeile, die es Alert öffnen wird Dialog und nicht den Zustand des Kontrollkästchens ändern, aber mit den anderen Zeilen darunter "Anrufe" & "SMS" können Sie das Kontrollkästchen oder irgendwo in dieser Zeile, um den Zustand des Kontrollkästchens zu ändern. –

+1

Hallo können Sie mir geben ein kompletter Code, wie man Kontrollkästchen zur Listenansicht hinzufügt? –

+0

Hallo, füge einfach diesen listView.setChoiceMode (ListView.CHOICE_MODE_MULTIPLE) hinzu; zu deiner Listview, das ist alles –

Verwandte Themen