我从列表视图中的解析数据库中获取值。但问题是我无法构建输出。 例如 当我调用解析类时,我得到输出为
我需要像
这样的东西约翰
1A Camac Street
123456789
john@testmail.com
全部作为一个列表项,然后是另一个名称和详细信息,等等。
我正在使用代码:
ParseQuery query = ParseQuery.getQuery("Stage1");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objects, ParseException error) {
if (error == null) {
ArrayList<String> arraystage = new ArrayList<String>();
for (ParseObject j : objects) {
arraystage.add(j.getString("Name"));
arraystage.add(j.getString("Address"));
arraystage.add(j.getString("Phone"));
arraystage.add(j.getString("Email"));
//arraystage.subList(1,4);
}
ArrayAdapter adapter = new ArrayAdapter(Userprofile_view.this, android.R.layout.simple_list_item_1, arraystage);
lvdet.setAdapter(adapter);
}
}
});
所以任何人都可以帮助我。
答案 0 :(得分:1)
默认情况下,ArrayAdapter
使用商品toString()
来获取商品文字。
如果您还需要其他内容,则必须覆盖ArrayAdapter.getView()
答案 1 :(得分:1)
对于此类列表,您无法使用simple_list_item
。您需要创建自定义视图并覆盖getView
方法。结帐这篇文章http://www.survivingwithandroid.com/2012/10/android-listview-custom-adapter-and.html
我还认为如果使用填充了解析对象数据的Contact
对象会使事情变得更容易
class Contact{
String name, address, phone, email;
}
和适配器
ArrayList<Contact> arraystage = new ArrayList<Contact>();
for (ParseObject j : objects) {
Contact c = new Contact();
c.name = j.getString("Name");
c.address = j.getString("Address");
c.phone = j.getString("Phone");
c.email = j.getString("Email");
arraystage.add(c);
}
ArrayAdapter adapter = new ArrayAdapter(Userprofile_view.this, android.R.layout.your_custom_view, arraystage){
public View getView(int position, View convertView, ViewGroup parent) {
}
};
lvdet.setAdapter(adapter);