リストビューから新しいアクティビティを開始しようとしています。データベースからいくつかのデータをロードして別のアクティビティで開きます...customAdapterからOnItemClickListenerとgetTagを使用すると正常に動作します...しかし、結果はリストビューの一部のイテンで重複して表示されました。いくつかのトピックを検索しています...リソースViewHolderが見つかりました。
重複の問題は解決しましたが、holder.getTag()から新しいアクティビティを開始できません。
私のビューホルダー
static class ViewHolder {
TextView hs;
TextView hi;
TextView ha;
ImageView ho;
ImageView hm;
}
私のcustomAdapterビューコード
public View getView(int position, View convertView, ViewGroup parent) {
DataAdapter.ItemLista item = itens.get(position);
final ViewHolder holder;
if(convertView==null){
convertView = inflater.inflate(R.layout.linha_listview, null);
holder = new ViewHolder();
holder.hi = (TextView)convertView.findViewById(R.linhaLista.id);
holder.hs = (TextView)convertView.findViewById(R.linhaLista.musica);
holder.ha = (TextView)convertView.findViewById(R.linhaLista.cantor);
holder.ho = (ImageView)convertView.findViewById(R.linhaLista.cat_oracao);
holder.hm = (ImageView)convertView.findViewById(R.linhaLista.cat_missa);
/*if (imgMissa.equals(null)) {
missa.setImageResource(R.drawable.blank);
}else if(imgOra.equals("louvor")) {
missa.setImageResource(R.drawable.louvor);
}else if(imgOra.equals("adoracao")) {
missa.setImageResource(R.drawable.adoracao);
}*/
convertView.setTag(holder);
Log.v(String.valueOf(holder),"valor do setholder");
}else {
holder = (ViewHolder) convertView.getTag();
Log.v(String.valueOf(holder),"valor do getholder");
}
holder.hi.setText(String.valueOf(item.id));
holder.hs.setText(item.musica);
holder.ha.setText(item.cantor);
String imgOra = item.oracao;
if (imgOra.equals(null)) {
holder.ho.setImageResource(R.drawable.blank);
}else if(imgOra.equals("louvor")) {
holder.ho.setImageResource(R.drawable.louvor);
}else if(imgOra.equals("adoracao")) {
holder.ho.setImageResource(R.drawable.adoracao);
}
return convertView;
}
この場合、フィールドholder.hiをタグとして取得する必要があります。誰もがそれを解決する方法を知っていますか?