Xamarin.Androidでアイテム発注システムを開発しようとしています。アイテムリストを表示するために、私はすべての行にカートボタン付きのカスタムアダプタでlistViewを使用しました。どの技術を使うべきなのか、注文したすべてのアイテムをリストに入れてカートリストのアクティビティに送る方法を教えてください。 ここに私のitemListAdapterクラスがあります:注文アイテムをすべてXamarin.Androidのカートリストに保存するにはどうすればよいですか?
ありがとうございます!
namespace Test.Restaurant.Android.Adapters
{
public class ItemListAdapter : BaseAdapter
{
List mItems;
Activity context;
private OrderDetail _OrderDetails;
private List _OrderDetailsList;
public ItemListAdapter(Activity context, List<Item> items) : base()
{
this.context = context;
this.mItems = items;
}
public override long GetItemId(int position)
{
return position;
}
public override Item this[int position]
{
get { return mItems[position]; }
}
public override int Count
{
get { return mItems.Count; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = convertView ?? context.LayoutInflater.Inflate(Resource.Layout.ItemRowView, parent, false);
var viewHolder = view.Tag as ItemHolder;
var item = mItems[position];
Bitmap myImage = ImageHelper.Bytes2Bimap(item.Image);
// 03. List With Custom Row View
if (viewHolder == null)
{
viewHolder = new ItemHolder
{
itemNameTextView = view.FindViewById<TextView>(Resource.Id.itemNameTextView),
descriptionTextView = view.FindViewById<TextView>(Resource.Id.descriptionTextView),
itemImageView = view.FindViewById<ImageView>(Resource.Id.itemImageView),
priceTextView = view.FindViewById<TextView>(Resource.Id.priceTextView),
btnPlus = view.FindViewById<ImageView>(Resource.Id.btnPlus),
btnMinus = view.FindViewById<ImageView>(Resource.Id.btnMinus),
btnAddtoCart = view.FindViewById<ImageView>(Resource.Id.btnAddToCart),
txtQty = view.FindViewById<TextView>(Resource.Id.cart_product_quantity)
};
view.Tag = viewHolder;
}
else
{
viewHolder = view.Tag as ItemHolder;
}
viewHolder.itemNameTextView.Text = item.ItemName;
viewHolder.descriptionTextView.Text = item.ItemDescription;
viewHolder.priceTextView.Text = "$ " + 30;
viewHolder.itemImageView.SetImageBitmap(myImage);
if (!viewHolder.btnAddtoCart.HasOnClickListeners)
{
viewHolder.btnAddtoCart.Click += (sender, args) =>
{
_OrderDetails = new OrderDetail();
_OrderDetails.ItemId = item.ItemId;
_OrderDetails.Quantity = int.Parse(viewHolder.txtQty.Text);
_OrderDetails.UnitPriceInclTax = 0;
_OrderDetails.UnitPriceExclTax = 0;
_OrderDetails.DiscountAmountInclTax = 0;
_OrderDetails.DiscountAmountExclTax = 0;
_OrderDetails.PriceInclTax = 100;
_OrderDetails.PriceExclTax = 0;
** //What should I Do Here???**
**************************
**************************
};
}
return view;
}
private class ItemHolder : Java.Lang.Object
{
public TextView itemNameTextView { get; set; }
public TextView descriptionTextView { get; set; }
public TextView txtQty { get; set; }
public ImageView itemImageView { get; set; }
public ImageView btnPlus { get; set; }
public ImageView btnMinus { get; set; }
public ImageView btnAddtoCart { get; set; }
}
}
}
こんにちはエルビス夏を!私の心から多くの多くのありがとう! 私はあなたの方法を適用しました。それは素晴らしい! 私の最後には2つの問題があります。 まず、タブ(カテゴリ)のフラグメントを使用しました。私のポストのリンクされた画像を見てください!だから、私はすべてのフラグメントクラスでcartListパラメータを渡さなければなりません。 問題は、新しいアイテムを注文するために新しいタブをクリックすると、カートのリストが空になることです。 ** 2番目の問題は次のとおりです。** cartList(orderDetails)を新しいアクティビティに渡すためにどの技術を使用すべきですか? あなたの貴重な返事を待っています! ありがとうございました! – Russell
あなたの要件のための@Russell、私はCartListのためのシングルパターンを使用することをお勧めします、私の更新を確認してください。 –