将List <service>填充到android ListView中,给出不同的值

时间:2016-12-08 06:57:12

标签: android listview

我从List<Service>收到getParcelableArrayListExtra()现在我需要将收到的对象填充到android ListView中

我尝试以下列方式填充ListView。将填充ListView以显示对象引用ID。而不是显示内容。

如何显示此列表中的内容。

实施如下:

List<Service> serviceCart = getIntent().getParcelableArrayListExtra("serviceCart");

ListView listView = (ListView) findViewById(R.id.lv_choosed_services);

ArrayAdapter<Service> serviceArrayAdapter = new ArrayAdapter<Service>(this,android.R.layout.simple_list_item_1,serviceCart);

listView.setAdapter(serviceArrayAdapter);

1 个答案:

答案 0 :(得分:1)

打开ArrayAdapter并继续阅读第405行至第410行

final T item = getItem(position);
if (item instanceof CharSequence) {
    text.setText((CharSequence) item);
} else {
    text.setText(item.toString());
}

你在做什么:

如果您的商品为String Adpater.getView(params),则会使用该商品,否则将使用item.toString()。在您的Service.java中,您没有toString(),因此应用程序使用默认默认toString()

你应该做什么:

  • 最好创建自定义ArrayAdapter并填充您的视图
  • 覆盖toString()中的Service.java并仅使用您希望在适配器中填充的值,例如service_name和/或service_code,默认实现将完成剩下的工作。

注意: 请阅读Naming Conventions,建议不要将service_name对象命名为serviceName