2016-07-24 16 views
-3

Ich bin neu in Java und Android. Ich habe eine Klasse mit Definition erstellt unter:Anzeige Klassenmitgliedswert mit ArrayList von Objekten

public class MyClass { 
    int id; 
    String name; 
} 

Jetzt bin ich Objekte der Klasse zu schaffen, Wert auf die Teilnehmer, die Initialisierung und das Hinzufügen von Objekten zu Array-Liste wie folgt aus:

MyClass myclassobj1 = new MyClass(); 
myclassobj1.id = 1; 
myclassobj1.name = "Abhishek"; 
MyClass myclassobj2 = new MyClass(); 
myclassobj2.id = 2; 
myclassobj2.name = "Kumar"; 


ArrayList<MyClass> taskList = new ArrayList<MyClass>(); 
taskList.add(myclassobj1); 
taskList.add(myclassobj2); 

Jetzt ordne ich Arraylist Jetzt Iterator wie diese

Iterator it = taskList.iterator(); 

, wenn ich über Array-Liste iterieren möchte ich die Werte im Log ich die Teilnehmer hinzugefügt, die ich nicht in der Lage bin zu tun

while (it.hasNext()) 
      Log.d(TAG,it.next().getClass().getDeclaredFields().toString()); 

Bitte helfen

+0

„Ich möchte die Werte im Log ich die Teilnehmer hinzugefügt, die ich nicht in der Lage bin zu tun“, was meinst du damit? – CKing

+0

meine erste Zeile ist, ich bin neu in Java, und dann gibt es einen negativen Punkt. Ist es nicht der Ort, um Hilfe zu nehmen, wenn ich ein Anfänger bin? –

+0

Für die Aufzeichnung, habe ich Sie nicht downvote. Das heißt, zu wissen, wie man Fragen stellt, hat nichts damit zu tun, ein Novize in einer bestimmten Technologie zu sein. – CKing

Antwort

1

Sie so etwas wie dies stattdessen tun sollten:

List<MyClass> taskList = new ArrayList<MyClass>(); 
taskList.add(new MyClass(1, "kumar1")); 
taskList.add(new MyClass(2, "kumar2")); 

die in der Klasse MyClass definieren den Konstruktor mit Parametern ...

UND die toString außer Kraft setzen Methode in der Klasse, damit Sie beim Lesen des Objekts etwas vom Menschen lesbares sehen können ...

dies getan haben, werden Sie sehen, wie dies funktioniert:

for (MyClass mx: taskList) { 
    Log.d(TAG, mx.toString()); 
} 

ein Beispiel dafür, wie die MyClass wie folgt aussehen:

class MyClass { 
    private int id; 
    private String name; 
    public MyClass(int id, String name) { 
    this.id = id; 
    this.name = name; 
    } 
    @Override 
    public String toString() { 
    return "MyClass [id=" + id + ", name=" + name + "]"; 
    } 

} 

Edit:

die

Ich vermute, Sie wollen Iterator, um die Werte in der Liste zu halten und nicht den Namen des Feldes ...

die Implementierung sieht wie folgt aus:

Iterator<MyClass> it = taskList.iterator(); 
while (it.hasNext()) { 
    System.out.println(it.next().getClass().getDeclaredFields().toString()); 
    System.out.println(it.next().getId()); 
    System.out.println(it.next().getName()); 
} 

Sie sicher müssen die entsprechenden Getter ...

public int getId() { 
    return id; 
} 
public String getName() { 
    return name; 
} 
+0

gibt es eine Möglichkeit, die Werte zu erhalten, wenn ich den Iterator verwende? –

+0

ja ... werfen Sie einen Blick auf das Update in der Antwort ..... –

+0

so in der Klasse muss ich Methoden definieren, um ID und Name Mitgliedswerte zurückzugeben. Recht? –

0

Wenn alle anderen Dinge dann in Ordnung scheinen, können Sie über die Arraylist iterieren als:

for (MyClass task : taskList) { 
    Log.d(TAG, task.id + " " + task.name); 
} 
0

Diese Teile waren im Grunde fehlt in meinem Code und das war, warum ich nicht in der Lage war, die Werte von Klassenmitglied

zuerst zu bekommen (

01)
public class MyClass { 

    int id; 
    String name; 

    public String getId() { 
     return id+""; 
    } 

    public String getName() { 
     return name; 
    } 
} 

Zweitens:

Iterator<MyClass> it = taskList.iterator(); 

     while (it.hasNext()){ 
      MyClass myobj = it.next(); 
      Log.d(TAG,myobj.getId()); 
      Log.d(TAG,myobj.getName()); 
     } 
Verwandte Themen