我试图确定一个包含每行不同布局的单个ListView的最佳方法.我知道如何创建自定义行+自定义数组适配器以支持整个列表视图的自定义行,但是如何在ListView中实现许多不同的行样式?
我正在阅读本教程http://android.amberfog.com/?p=296.我想创建一个不同类型的行的Listview.我理解如何创建适配器,但xml布局呢?所以我定义了像这样的xml布局:
<ListView/>
<TextView android:id="@+id/id1" />
<TextView android:id="@+id/id2" />
<ImageView android:id="@+id/id3" />
<TextView android:id="@+id/id4" />
Run Code Online (Sandbox Code Playgroud)
如果一行只使用布局的某些元素(仅一些文本视图)而另一行可能使用其他元素,那么它是否会成为一个问题(性能)?我不明白我的是否是定义xml的正确方法,或者我是否必须为每种类型的行创建不同的布局.
先感谢您
编辑:现在我有一个零点异常.
来自适配器的java代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listview_main, null);
holder.textView_title = (TextView)convertView.findViewById(R.id.listview1);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
**holder.textView_title.setText("aaaa");** //NULL POINT EXCEPTION HERE
return convertView;
Run Code Online (Sandbox Code Playgroud)
}
class ViewHolder {
public TextView textView_title;
}
Run Code Online (Sandbox Code Playgroud)
xml 1:
<?xml …Run Code Online (Sandbox Code Playgroud)