ExpandableListActivity を拡張し、いくつかの親グループといくつかの子エントリを含むアクティビティがあります...グループ内のエントリの左側にアイコンを配置しました。エントリを開くたびに、ランダムにアイコンが表示されなくなります...パターンが見つからなかったので、どこに間違いがあるのか よくわかりません(オブジェクトを間違った方法でリサイクルしている可能性があります?! )
ここに私の BaseExpandableListAdapter があります:
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) myContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.child_row, null);
}
TextView tvName = (TextView) convertView.findViewById(R.id.tvName);
tvName .setText(arrChildelements[groupPosition][childPosition]);
ImageView tvIcon = (ImageView) convertView.findViewById(R.id.imageViewIcon);
switch (childPosition) {
case 0:
tvIcon.setImageResource(R.drawable.ic_1);
break;
case 1:
tvIcon.setAlpha(0);
break;
case 2:
tvIcon.setImageResource(R.drawable.ic_2);
break;
case 3:
tvIcon.setImageResource(R.drawable.ic_3);
break;
case 4:
tvIcon.setImageResource(R.drawable.ic_4);
break;
case 5:
tvIcon.setImageResource(R.drawable.ic_5);
break;
case 6:
tvIcon.setImageResource(R.drawable.ic_6);
break;
}
return convertView;
}
そして、ここに私のchild_row.xmlがあります
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageViewIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingLeft="40dp"
android:src="@drawable/empty" />
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:autoLink="all"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:textSize="18sp" >
</TextView>
</LinearLayout>
追加情報やコードが必要な場合は、お知らせください。
助けてくれてありがとう、私の英語を許してください...