0
私はリストビューアイテムをクリックすると、音楽プレーヤーのように再生アイコンをsetVisibleしようとしています。Android ListViewとカスタムアレイアダプターの画像の再合成
カスタムアレイアダプターを使用していますが、すべて正常ですが、上下にスクロールしてリスト上の項目を選択すると、前の再生アイコンが消えます。
しかし、スクロールせずに項目をクリックするだけで完璧に動作します。
OnclickListener:
listChannels.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
if (oldView != null) {
oldView.setDrawingCacheEnabled(true);
ImageView icon = (ImageView) oldView
.findViewById(R.id.icon);
icon.setImageBitmap(null);
icon.setVisibility(ImageView.GONE);
icon.invalidate();
}
oldView = arg1;
selectedItem = arg2;
ImageView icon = (ImageView) arg1.findViewById(R.id.icon);
icon.setImageResource(R.drawable.play);
icon.setVisibility(ImageView.VISIBLE);
}
});
Arrayアダプタ:
private class ListArrayAdapter extends ArrayAdapter<String> {
public ListArrayAdapter(Context context, int textViewResourceId,
String[] arrTitle) {
super(context, textViewResourceId, arrTitle);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.listitem_row, parent, false);
TextView label = (TextView) row.findViewById(R.id.station);
ImageView imageView = (ImageView) row
.findViewById(R.id.imageViewDisplay);
String areaStr = feeds.get(position).getStrLocation();
imageLoader.DisplayImage(feeds.get(position).getStrImage()
.toString(), activity, imageView);
if (!areaStr.equals("")) {
TextView area = (TextView) row.findViewById(R.id.area);
area.setText(areaStr);
area.setVisibility(TextView.VISIBLE);
}
if (selectedItem == position) {
ImageView icon = (ImageView) row.findViewById(R.id.icon);
icon.setImageResource(R.drawable.play);
icon.setVisibility(ImageView.VISIBLE);
}
return row;
}
}
私の編集した回答を確認してください! – Hiral
Thnxたくさん、すべてのthoその(新しいView.onClickListener(){....:D – ZealDeveloper