0

Ich versuche, den richtigen Weg zu finden, diese Funktion in diesen Algorithmus zu implementieren. Ich möchte eine bestimmte Aktivität für "Protokollverlauf", "Neues Protokoll", "Analytics", "Einstellungen" öffnen können.Wie öffne ich bestimmte Aktivitäten, wenn ich aus einem Array in einer Navigationsleiste auswähle?

private void addDrawerItems() { 
    String[] osArray = { "Log History", "New Log", "Analytics", "Settings"}; 
    mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, osArray); 
    mDrawerList.setAdapter(mAdapter); 

    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent intent = new Intent(MainActivity.this, NewLogActivity.class); 
      startActivity(intent); 
     } 
    }); 
} 

Antwort

1

Vorausgesetzt, dass Sie nie Ihre Array ändern,

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    switch (position) { 
    case 0: //Log History 
     startActivity(this, LogHistory.class); 
     break; 
    case 1: //Log History 
     startActivity(this, NewLog.class); 
     break; 
    case 2: //Log History 
     startActivity(this, Analytics.class); 
     break; 
    case 3: //Log History 
     startActivity(this, Settings.class); 
     break; 
    default: 
     throw new InvalidArgumentException("wtf, unknown position"); 
    } 
} 

Ich kann mich nicht daran erinnern, ob Position bei 0 oder 1 beginnt, aber es sollte Ihnen eine Vorstellung davon, was zu tun ist.

+1

Ich bin heute Morgen aufgewacht, um zu bemerken, dass ich die neue Intent-Verlangsamung, die in der startActivity notwendig ist, weggelassen habe, aber Sie bekommen die Idee, wie es funktioniert. – Jeff