2017-01-17 2 views
1

I Klasse mit dem Namen haben als login (ohne encapsulate Felder, ich will nur machen es einfach)Wert Array hinzufügen in Android

public class login 
{ 
    String username; 
    String password; 

    public login(String username, String password) 
    { 
     this.username = username; 
     this.password = password; 
    } 
} 

DisplayList.java

public class DisplayList extends ListActivity 
{ 
    login[] values; 

    protected void onCreate(Bundle savedInstanceState) 
    { 
     String username, password; 
     int count = 0; 
     while (count < somelength) 
     { 
      username = somestring; 
      password = somestring; 

      values[count] = new login(username, password); 

      //if I Toast it 
      //Toast.makeText(this, username + " . " + password, Toast.LENGTH_SHORT).show(); 

      count++; 
     } 

     login_adapter = new login_adapter(this, values); 
     setListAdapter(login_adapter); 
    } 
} 

Ich möchte Werte übergeben (Login [] Werte) login_adapter (Klasse login_adapter erstreckt ArrayAdapter)

aber ich komme immer mit NullPointerException auf "Werte [Anzahl] = neue Anmeldung (Benutzername, Passwort); "

wenn ich es Toast" Toast.makeText (dies, Benutzername + "." + Passwort, Toast.LENGTH_SHORT) .show(); "der Toast kommen mit allen Werten

+1

'Werte = new Login [ 4]; 'Array-Initialisierung –

Antwort

2

verwenden Sie das Array initialisieren, da Sie trave sind rsing in Schleife gleich der Größe von somelength und ein Objekt von login jedes Mal zu schaffen so

public class DisplayList extends ListActivity 
{ 
    login[] values; 

    protected void onCreate(Bundle savedInstanceState) 
    { 
     String username, password; 
     int count = 0; 

     values = new longin[somelength]; 
     // ^^^^ initialize your array 

     while (count < somelength) 
     { 
      username = somestring; 
      password = somestring; 
      values[count] = new login(username, password); 
      count++; 
     } 
     login_adapter = new login_adapter(this, values); 
     // make sure the login_adapter class name and object name is different    
     setListAdapter(login_adapter); 
    } 
} 

Für Konvention Sie Klassen login =>Login umbenennen, login_adapter =>LoginAdapter

0

Sie sind nicht Ihre Array initialisiert Sie müssen so etwas wie dies zu Beginn der onCreate:..

values = new login[2]; 

Beachten Sie, dass für Konvention Klassennamen mit Groß carachter beginnen.

ich schlage vor, Sie Arraylist zu verwenden, so müssen Sie somelength nicht wissen, Feldlänge zum Zeitpunkt der Erstellung

Verwandte Themen