2016-07-24 10 views
-3

私はjavaとandroidを初めて使用しています。今私は、クラスのオブジェクトを作成するクラスメンバに値を初期化し、このように配列リストにオブジェクトを追加していオブジェクトのArrayListを使用してクラスのメンバー値を表示

public class MyClass { 
    int id; 
    String name; 
} 

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); 

今、私はArrayListに割り当てるIは、以下の定義を持つクラスを作成しましたこの

Iterator it = taskList.iterator(); 

私は配列リストを反復するとき今、私は

0を行うことはできませんよ、私はクラスのメンバに追加した値を、記録したいなどのイテレータ
while (it.hasNext()) 
      Log.d(TAG,it.next().getClass().getDeclaredFields().toString()); 

あなたの代わりにこのような何かを行う必要があります

+0

は、「私は私が行うことができないですクラスのメンバーに加え、値を記録したい」、あなたはこのことで何を意味するのですか? – CKing

+0

私の最初の行は、私はjavaに新しいです、そして、負のポイントがあります。私が初心者のときに助けを受ける場所ではありませんか? –

+0

記録のために、私はあなたにdownvoteしなかった。それは、質問する方法を知っていることは、特定の技術の初心者であることとは何の関係もないということです。 – CKing

答えて

1

を助けてください:MyClassクラスで

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

のtoStringをオーバーライドします...パラメータでコンストラクタを定義クラス内のメソッドで、オブジェクトを印刷するときに人間が読める何かを見ることができます。

がこれを行った、あなたはこれが動作する方法について説明します。

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

MyClassのは、このように見えることができる方法の例を:

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 + "]"; 
    } 

} 

は編集:

私はあなたが欲しい疑いますフィールドの名前ではなくList内の値を保持するイテレータ...

実装は次のようになります。

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()); 
} 

あなたは他のすべての物事が、その後細かいように見えるかのように、あなたはArrayListのを反復処理することができます

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

イテレータを使用しているときに値を取得する方法はありますか? –

+0

はい...答えに..... –

+0

の更新を見てください。クラスでは、idとnameメンバの値を返すメソッドを定義する必要があります。右? –

0

...それぞれのゲッター確認のために必要があります。これらの部品だった

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

基本的に私のコードには欠けていて、なぜ私がクラスメンバの値を得ることができなかったのですか

最初に:

public class MyClass { 

    int id; 
    String name; 

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

    public String getName() { 
     return name; 
    } 
} 

第二:

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

     while (it.hasNext()){ 
      MyClass myobj = it.next(); 
      Log.d(TAG,myobj.getId()); 
      Log.d(TAG,myobj.getName()); 
     } 
関連する問題