2017-03-11 10 views
0

クラスを使用しているarraylistから自分の情報を追加する方法と、リストビューの配列アダプターに情報を追加する方法がわかりません。私はこの配列からファーストネームを追加しようとしています。配列アダプターにクラスを使用したarraylistの追加

どうすればできますか?

私は、この別のクラス(のtoStringが正しいかどうかわからないが)持っている:

public class PersonClass { 

final private String firstName; 
final private String lastName; 
final private String birthday; 
final private int personPic; 

private PersonClass(String fName, String lName, String bDay, int pic) { 

    firstName = fName; 
    lastName = lName; 
    birthday = bDay; 
    personPic = pic; 

} 

public String toString() { 
    return firstName+" "+lastName+" "+birthday+" "+personPic; 
} 

public static void main(String args[]){ 

    // Information for each person using the PersonClass 
    PersonClass person1 = new PersonClass("first name", "last name", "01/01/2000", R.drawable.pic1); 
    // ..... up to 10... 


    // ArrayList 
    final ArrayList<PersonClass> personList = new ArrayList<>(); 

    // Add person data to array list 
    personList.add(person1); 
    personList.add(person2); 
    personList.add(person3); 
    personList.add(person4); 
    personList.add(person5); 
    personList.add(person6); 
    personList.add(person7); 
    personList.add(person8); 
    personList.add(person9); 
    personList.add(person10); 

    } 

} 

これは私の配列アダプタです。

アレイに情報を追加するクラスがあるため、アダプタにarraylist名を追加するだけではありません。しかし、私はちょうどリストビューの配列の最初の名前を表示する。

+0

public String getFirstName() { return firstName; } 

あなたはより多くのあなたがここに達成したいものを説明できますか? – cody123

+0

いくつかの情報を持つ人物をアレイリストに追加します。このリストから、私は最初の名前を取得し、これをリストビューに追加する必要があります。私はアダプタのコードを持っています:ArrayAdapter arrayAd = new ArrayAdapter (this、android.R.layout.simple_list_item_1、???); ...しかし、これは私が行く限り、私は今何をすべきか分からない。 – art3mis

+0

私はあなたが同じものを探していれば私の答えをお知らせしました。 – cody123

答えて

1
import java.util.ArrayList; 
import java.util.List; 

class Person { 
    private String firstName; 

    //Might be more fields 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public Person(String firstName) { 
     super(); 
     this.firstName = firstName; 
    } 

} 

public class SO1 { 

    public static void main(String[] args) { 

     List<Person> personList = new ArrayList<Person>(); 
     //Either you can directly add first name in adaptor 
     for (int i = 0; i < 10; i++) { 
      personList.add(new Person("Name "+i)); 
     } 

     //If you have list than you have to iterate it and add first name 
     List<String> adaptorList = new ArrayList<String>(); 
     personList.forEach(p -> adaptorList.add(p.getFirstName())); 

     System.out.println(adaptorList); 
    } 

} 
+0

これは完璧でした。それは私が文字列を取得するために必要なものです。ありがとうございました。 – art3mis

1

名前のゲッターを書く。メンバ変数は、いわゆるgetterメソッドとsetterメソッドでアクセスするためにprivateです。したがって、PersonClassにgetFirstName()メソッドが必要です。あなたの主な

List<String> nameList = new ArrayList<>(); 

nameList.add(person1.getFirstName()); 
関連する問題