2014-04-14 75 views
0

我正在學習Android,我來自.net 目前我仍在探索和學習基礎知識。 作爲一個簡單的測試,我想試試這個: - 使人類(串名字&串姓氏), - 讓幾個對象 - 在旋轉Spinner中的顯示項目

到目前爲止好顯示這些,但我會喜歡在微調器中看到名字。 我無法弄清楚如何工作的,在這裏你可以真正說: 「從這些對象,顯示姓名字符串」

我的人類是這樣的:

public class Person { 
public String FirstName; 
    public String LastName; 

    public Person(String firstName, String lastName){ 
     this.FirstName = firstName; 
     this.LastName = lastName; 
    } 

    public String ToString() 
    { 
     return FirstName + " "+LastName; 
    } 
} 

和我的OnCreate mainclass :

Person p1 = new Person("Dave", "Hannes"); 
    Person p2 = new Person("Roos", "Gijbels"); 
    Person p3 = new Person("Thomas", "Beerten"); 
    List<Person> personenLijst = new ArrayList<Person>(); 
    personenLijst.add(p1); 
    personenLijst.add(p2); 
    personenLijst.add(p3); 

ArrayAdapter<Person> personenAdapter = new ArrayAdapter<Person>(
     this, 
     android.R.layout.simple_spinner_dropdown_item, 
     personenLijst 
); 
Spinner spinner = (Spinner)findViewById(R.id.spinner); 
spinner.setAdapter(personenAdapter); 

回答

2

如果您使用ArrayAdapter,它使用toString()方法獲取每個對象的顯示字符串。

Android documentation on ArrayList

然而TextView的引用,將填充陣列中的每個對象的的toString()。您可以添加自定義對象的列表或數組。重寫對象的toString()方法以確定列表中的項目將顯示哪些文本。

通用ArrayAdapter是一個簡單的類,如果你想控制你的顯示效果更加出色,你可以創建自己的類擴展ArrayAdapter

請注意,你有錯誤的外殼爲你的toString(),方法(我想這是從.NET自然而來)。 Java中的方法以小寫字母開頭:

public String toString() 
{ 
    return FirstName; // to return only first name 
} 
+2

+1好看的男人。 – Sajmon