こんにちは、私は Android/Xamarin Dev の初心者で、問題があります。hereの例に従います。Custom ArrayAdapter を持つ ListFragment があります。このように(ViewHolder)作成し、下にスクロールするとアイテムが混乱します。私が意味するのは、5つのアイテムを持つリストがあり、1つのアイテムに値10のテキストビューがある場合、他のアイテムまでスクロールすると、いくつかのアイテムがランダムに値10を取得し、段階的にデバッグし、リスト/配列に含まれていません値が 10 で、問題の原因がわかりません。
これの使用をやめると:
if (view != null)
{
holder = view.Tag as MenuItemHolder;
}
問題はありませんが、パフォーマンスが不足しています。
PS 私の英語で申し訳ありません。
ここで編集は私のコードです:これの問題は、私がholder.NumberTextView.Text +1を作るときですが、スクロールすると+1が他のアイテムにランダムになります
public override View GetView(int position, View convertView, ViewGroup parent)
{
MenuItemHolder holder = null;
var view = convertView;
if (view != null)
{
holder = view.Tag as MenuItemHolder;
}
if (holder == null)
{
holder = new MenuItemHolder();
view =LayoutInflater.From(Context).Inflate(Resource.Layout.rowWithButtons, null);
holder.RemoveButton = view.FindViewById<Button>(Resource.Id.DecreaseButton);
holder.AddButton = view.FindViewById<Button>(Resource.Id.IncreaseButton);
holder.NumberTextView = view.FindViewById<TextView>(Resource.Id.NumberTextView);
holder.AddButton.Click += delegate
{
holder.NumberTextView.Text = (Convert.ToInt32(holder.NumberTextView.Text) + 1).ToString();
};
holder.RemoveButton.Click += delegate
{
if ((Convert.ToInt32(holder.NumberTextView.Text) > 1))
{
holder.NumberTextView.Text = (Convert.ToInt32(holder.NumberTextView.Text) - 1).ToString();
}
};
view.Tag = holder;
}
holder.Title.Text = GetItem(position).Name;
return view;
}
public class MenuItemHolder : Java.Lang.Object
{
public TextView Title { get; set; }
public Button OptionsButton{ get; set; }
public TextView NumberTextView{ get; set; }
public Button AddButton{ get; set; }
public Button RemoveButton{ get; set; }
public Button DoneButton { get; set; }
}