プログレスバーを含むレイアウトを使用しようとしているカスタムリストアダプターがあります。
私の問題は、ビューが最初に膨らんだときに、進行状況バーの可視性を false に設定したことです。アイテムがクリックされると、プログレス バーの可視性を true に設定します。しかし、リストを下にスクロールすると、ランダムなアイテムの進行状況バーが表示されます (ビューのリサイクルのため?)。
これを改善する簡単な方法はありますか?
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.imagegriditem, null);
holder = new ViewHolder();
holder.heroName = (TextView) convertView.findViewById(R.id.heroName);
holder.heroImage = (ImageView)convertView.findViewById(R.id.heroImage);
holder.progressBar = (ProgressBar) convertView.findViewById(R.id.progressBar);
holder.progressBar.setIndeterminate(false);
holder.progressBar.setVisibility(View.INVISIBLE);
holder.progressBar.setIndeterminate(false);
holder.progressVisible = View.INVISIBLE;
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
if(holder != null){
holder.heroName.setText(heroes[position]);
holder.heroImage.setImageResource(android.R.drawable.ic_dialog_email);
holder.progressBar.setProgress(10);
}
final int pos = position;
final ViewHolder hold = holder;
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
hold.progressBar.setProgress(hold.progressBar.getProgress() + 10);
hold.progressVisible = View.VISIBLE;
hold.progressBar.setVisibility(View.VISIBLE);
}
});
return convertView;
}
これは基本的に概念コードの証明です..だから、きれいではありません。しかし、それを適切に使用できるように、アイデアを取り込もうとしています。