更新 建议我已将数据视图持有者添加到我的代码中,但仍面临同样的问题。 我编辑了我的问题,我的代码请看看。混淆自定义列表视图的行位置编号
我想显示根据排number.I要显示在第一排和第二排左侧火车头,反之亦然右手火车头我的列表视图2视图。
要有反之亦然行视图改变我把if条件和MOD%2 == 0检查位置,甚至比否则奇数..但是当我启动应用程序,我得到确切左右左右视图但是,当我向下滚动我陆续得到了两个右侧列车引擎排。
这里是代码
public LazyAdapter(Activity a, ArrayList<String> songsList) {
activity = a;
data=songsList;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
Log.d("Listview","Count is"+data.size());
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
Log.d("position is - ", "position is "+position);
if(position%2==0)
{
return 0;
}
else
{
return 1;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int type = getItemViewType(position);
System.out.println("getView " + position + " " + convertView + " type = " + type);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case 0:
convertView = inflater.inflate(R.layout.list_row1, null);
holder.caption = holder.caption = ((ImageView)convertView.findViewById(R.id.train).findViewById(R.id.boogi1).findViewById(R.id.imageView1));
break;
case 1:
convertView = inflater.inflate(R.layout.list_row2, null);
holder.caption = holder.caption = ((ImageView)convertView.findViewById(R.id.train2).findViewById(R.id.boogi2).findViewById(R.id.imageView1));
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
return convertView;
}
static class ViewHolder {
ImageView caption;
}
List_row1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="500dp"
android:background="@drawable/list_selector"
android:orientation="horizontal"
android:padding="5dip" >
<include android:id="@+id/mainview" layout="@layout/activity_main" />
activity_main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<include android:id="@+id/train" layout="@layout/train" />
</HorizontalScrollView>
train.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<include android:id="@+id/boogi1" layout="@layout/boogi" />
<include android:id="@+id/boogi2" layout="@layout/boogi" />
<include android:id="@+id/engine" layout="@layout/engine" />
在Train2.xml包含标记顺序被改变。
'list_row2'和'list_row1'如何不同于不同的背景? –
是在list_row 1具有2包括标签和比具有第一火车引擎图像视图中list_row2列车引擎的和后一个图像认为2包括在线性布局,但取向标签是水平.. –