2014-09-24 23 views
3

我使用Sugar ORM進行Android Studio開發。Sugar ORM:如何顯示值

但我想我有一個非常類似的問題。 如何以String或者int形式顯示一個/多個結果查詢? 我的實體是這樣的:

public class PersonsDatabase extends SugarRecord<PersonsSelection>{ 
String adultText, childText; 
int adultCount, childCount; 

public PersonsDatabase() 
{ 

} 
public PersonsDatabase(String adultText, String childText, int adultCount, int childCount) 
{ 
    this.adultText = adultText; 
    this.childText = childText; 

    this.adultCount = adultCount; 
    this.childCount = childCount; 

    this.save(); 
} 

}

它可以正確保存。但是,當我要顯示這樣的:

public class PersonsSelection extends Activity { 

ListView list; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_persons_selection); 

    PersonsDatabase personsDatabase = new PersonsDatabase("1 Adult","No Childs",1,0); 
    List<PersonsDatabase> personsList = PersonsDatabase.findWithQuery(PersonsDatabase.class,"Select adult_Text from PERSONS_DATABASE"); 

    list = (ListView)findViewById(R.id.listView); 
    list.setAdapter(new ArrayAdapter<PersonsDatabase>(this, android.R.layout.simple_list_item_1, personsList)); 
} 

}

我得到的是這樣的:PACKAGENAME .PersonsDatabase @ 4264c038 但我想,我在構造函數中寫的值。

感謝您的幫助。

回答

3

docs on ArrayAdapter

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

簡而言之:只重寫你的PersonsDatabasetoString()方法返回所需的文本respresentation。

或者:

要使用除TextViews其他東西陣列顯示,例如,ImageViews,或有一些數據的除了的toString()的結果填充該觀點,重寫getView(int, View, ViewGroup)返回的類型查看你想要的。

(再次來自文檔)。在那裏有大量的例子來說明如何去做。

+0

THX,幫我! – TdoubleG 2014-09-24 11:51:04

0

只需重寫toString()方法即可。 在該方法中,返回想要檢索的數據庫值。

以我爲例,我回來,我需要一個變量名(即消息):

@Override 
public String toString() { 
    return message; 
}