我试图模仿
通过为ArrayAdapter编写我自己的自定义视图(以显示单个股票信息)。
// OrderAdapter is derived from ArrayAdapter.
OrderAdapter orderAdapter = new OrderAdapter(this,
R.layout.custom_row_view, new ArrayList<Object>());
OrderAdapter
的代码如下。
public class OrderAdapter extends ArrayAdapter<TransactionSummary> {
public OrderAdapter(Context context, int textViewResourceId,
List<TransactionSummary> objects) {
super(context, textViewResourceId, objects);
}
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.custom_row_view, parent, false);
}
}
}
但是在ArrayAdapter的构造函数中,它只接受1种类型的自定义视图。因此,我不知道如何在这个列表的末尾适应另一种类型的自定义视图(显示所有股票摘要的总数)。
我是否知道如何为单个ListActivity提供2种不同的自定义视图?
答案 0 :(得分:2)
您可以将视图ID传递给Array到ArrayAdapter的构造函数。然后,您需要覆盖几个方法:
在http://http://developer.android.com/reference/android/widget/BaseAdapter.html阅读有关BaseAdapter的帮助以获取更多信息。如果您需要其他帮助,请回复。
- 好色
答案 1 :(得分:0)
如果你OrderAdapter orderAdapter = new OrderAdapter(this, R.layout.second_custom_row_view, new ArrayList<Object>());
,那么你可能会有另一个自定义行视图。但如果你的意思是同时拥有它们。也许你应该一个接一个地做上面的事情,如果这可能不仅仅是理论上的。
答案 2 :(得分:-2)
在自定义适配器的getView()方法中,您可以为列表中的特定对象扩展不同的布局。
您很可能会通过以下方式执行此操作:
public View getView(int position, View convertView, ViewGroup parent){
if(convertView==null){
if(myObjects.get(position).isCustom()
convertView=inflate(R.layout.custom);
else
convertView=inflate(R.layout.regular);
}
//update views...
}
希望这是你正在寻找的。 p>