2017-10-13 4 views
0

多くのデータでリストビューを作成しようとしましたが、ビルドするとリストビュー上のアイテムデータが複数繰り返しました。リストビュー繰り返しアイテム

これはmyJava CustomAdapter誰でも修正することができます

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 
    LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 

    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.list_item, null); 
     holder = new ViewHolder(); 

     holder.Name = (TextView) convertView.findViewById(R.id.Recipe_Name); 
     holder.Image_Block = (ImageView) convertView.findViewById(R.id.Recipe_Image); 
     holder.Text_Recipe = (TextView) convertView.findViewById(R.id.Recipe_Text); 
     holder.Text_Rarity = (TextView) convertView.findViewById(R.id.Recipe_Rarity); 

     RowItem row_pos = rowItems.get(position); 

     holder.Image_Block.setImageResource(row_pos.getImage_Block()); 
     holder.Name.setText(row_pos.getName()); 
     holder.Text_Recipe.setText(row_pos.getText_Recipe()); 
     holder.Text_Rarity.setText(row_pos.getText_Rarity()); 

     convertView.setTag(holder); 
    } 
    else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    return convertView; 
} 

のですか?ありがとうございました

+0

もちろん、作成または設定後にデータをホルダーに設定する必要があります。 – kimkevin

答えて

2

あなたのデータは反復されません。古いビューをリサイクルする場合、新しい値に初期化していません。 if-else文の外に値を設定するコード(接続を行うコードではない)を移動します。

+1

ありがとう!それは今働く –

関連する問題