دسترسی به مقدار تمامی آیتم های recyclerview
گزارشسوال
با سلام خدمت شما من همچین لیستی رو دارم
که اخر لیست یه گزینه سفارش هست , حالا میخوام به نام محصول , آیدی و تعدادش دسترسی داشته باشم یعنی همه محصولات رو چک کنم و اونهایی که بیشتر از ۱ عدد رو سفارش دادن رو از لیست بگیرم ممکنه کاربر از یکی ۳ تا سفارش بده و یا ممکنه از همه سفارش بده و اونهایی رو که سفارش داده تو یه صفحه دیگه نمایش بدم
امکانش هست بنده رو راهنمایی کنید ممنون از لطفتون.
در حال پیشرفت
0
اندروید - android
3 سال
22 پاسخ
5027 بازدید
0
پاسخ ها ( ۲۲ )
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوشما باید یک adapter سفارشی داشته باشید هر مقداری که لازم بشه رو می تونید از همان adapter به دست بیارید بخشی کد را قرار دهید تا بتوانیم راهنمایتان کنیم از آموزش های سایت هم می تونید استفاده کنید تمامی آموزش های سایت از اداپتور سفارشی استفاده کرده اند.
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوسلام
این کلاس Adapter هستش
public class ProductRecycler extends RecyclerView.Adapter {
ArrayList recycleInfos=new ArrayList();
public Context context;
public ProductRecycler(ArrayList recycleInfos,Context context){
this.recycleInfos=recycleInfos;
this.context = context;
}
@Override
public viewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_product,parent,false);
return new viewHolder(view);
}
@Override
public void onBindViewHolder(viewHolder holder, int position) {
ProductModel recycleInfo=recycleInfos.get(position);
holder.ProductTitle.setText(recycleInfo.title);
holder.Price.setText(recycleInfo.price);
// if (!recycleInfo.option.toString().contains(“”)){
// holder.OptionTitle.setText(recycleInfo.option);
// holder.OptionPrice = recycleInfo.optionPrice;
// }
holder.id=recycleInfo.id;
Picasso.with(context).load(“http://192.168.56.5/noonbiyar/uploads/”+recycleInfo.image).into(holder.ProductImg);
}
@Override
public int getItemCount() {
return recycleInfos.size();
}
}
class viewHolder extends RecyclerView.ViewHolder{
public ImageView ProductImg;
public NumberPicker CountProduct;
public TextView ProductTitle;
public TextView Price;
public CheckBox OptionTitle;
public String OptionPrice = “”;
public String id=””;
public viewHolder(View itemView) {
super(itemView);
ProductImg =(ImageView)itemView.findViewById(R.id.ProductImage);
ProductTitle =(TextView)itemView.findViewById(R.id.ProductTitle);
Price =(TextView)itemView.findViewById(R.id.Price);
CountProduct =(NumberPicker)itemView.findViewById(R.id.CountProduct);
}
}
این هم تابع parse json و ست کردن آداپتور
public void ShowProduct(){
recycleInfos=new ArrayList();
recycleName=new ArrayList();
recycleImg=new ArrayList();
recycleId=new ArrayList();
recycleOption = new ArrayList();
recycleOptionPrice = new ArrayList();
recyclePrice = new ArrayList();
recyclerView=(RecyclerView)findViewById(R.id.Product_Container);
manager=new LinearLayoutManager(this);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(manager);
//Toast.makeText(G.context,data,Toast.LENGTH_LONG).show();
try {
JSONArray jsonArray=new JSONArray(Products);
for(int i=0;i<jsonArray.length();i++){
JSONObject object=jsonArray.getJSONObject(i);
Log.i("salam : ",object.getString("title"));
recycleId.add(object.getString("id"));
recycleName.add(object.getString("title"));
recyclePrice.add(object.getString("price"));
recycleImg.add(object.getString("image"));
}
for(int i=0;i<recycleName.size();i++){
ProductModel recycleInfo=new ProductModel();
recycleInfo.id=recycleId.get(i);
recycleInfo.title=recycleName.get(i);
recycleInfo.price =recyclePrice.get(i);
//recycleInfo.option =recycleOption.get(i);
//recycleInfo.optionPrice =recycleOptionPrice.get(i);
recycleInfo.image=recycleImg.get(i);
recycleInfos.add(recycleInfo);
}
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(new ProductRecycler(recycleInfos,MainActivity.this));
} catch (JSONException e) {
e.printStackTrace();
}
}
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوشما باید مقدار ها رو در اکتیویتی دریافت کنید یعنی شما باید یک OnClickListner برای اضافه کردن نان داشته باشید در همون جا که اضافه می شود می تونید داده ها رو از recyclerView دریافت کنید یا در همان آداپتورتون
بعد از اینکه داده رو دریافت کردید با bundle یا intent پاسش بدید به اکتیویتی دوم
و برای اینکه بروی عوض شدن مقدار ها کنترل داشته باشید باید از TextWatcher استفاده کنید تا در صورت تغییر مقدار متغیرتان نیز آپدیت شود.
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوو کد زیر را از کد شما برداشتم شما باید مقدار های زیر را پاس بدید.
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوممنون از راهنماییتون اما این برای یک آیتم جواب میده برای کل آیتم ها باید چه کاری انجام بدم ؟
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغواگر دقت کنید شما از for استفاده کردید پس یعنی آخرین اندیس در هر دفعه منتقل می شود شما باید از نوع array استفاده کنید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوممنون از راهنماییتون , اما متاسفانه نتونستم کاری کنم و پروژم هم گیرش همین قسمت هست و سه روز هست درگیر اینم … امکانش هست لطف کنید همون تغییرات رو توی کد بنده بدید ؟ واقعا ممنونتون میشم
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوخواهش می کنم باید مثل زیر عمل کنید
ابتدا void زیر را قرار دهید.
سپس برای اینکه آنها را توی یک آرایه ذخیره کنید .
و برای اینکه پاسش بدید. nameValuePairs = (ArrayList ) intent.getSerializable(“nvp”);
Intent intent = new Intent(RegisterActivity1.this, RegisterActivity2.class);
intent.putExtra(“nvp”, nameValuePairs);
startActivity(intent);
و نحوه دریافتش در اکتیویتی دوم هم همانند زیر می شود.
ArrayList
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوممنون از پاسخگوییتون , اما تو recyclerView این رو چطور استفاده کنم و داینامیک باشه یعنی برای هر row یا ایتم باید یه ارایه داشته باشم باید چک کنم کدوم ها بیشتر از یک عدد سفارش دادن و برای اون یه ارایه درست کنم و مقادیرش رو توش بریزم و در نهایت یه ارایه نهایی درست کنم و همه رو بریزم توی اون و برای صفحه بعد اون رو تو حلقه بذارم و مقادیرش رو بخونم
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغودقیقا درست متوجه شدید
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوببخشید که راهنمایی هاتون رو درست متوجه نمیشم چون یکی دو ماه بیشتر نیست دارم اندروید کار میکنم الان کل روندم روی همین قسمت مونده و تمام سایت های خارجی رو بررسی کردم و هیچ کدوم راه حل درستی برای این کار ارائه نکردن , اگه لطف کنید کمکم کنید بتونم این قسمت رو انجام بدم یک دنیا ممنونتون میشم.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوخواهش می کنم یک بررسی دیگه می کنم
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوفکر می کنم مسئله رو کلا اشتباه متوجه شدیم !
شما می خواید وقتی رو دکمه + کلیک کرد و مقدار اضافه شد این مقدار رو دریافت کنید درسته ؟ شما کلیک رو کجا تعریف کردید ؟
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوچون دقیقا مشکل من برای کل آیتم ها هست و اونهایی که بیشتر از یک نون رو انتخاب کردن , و ممکنه دو تا نون از هر کدوم مثلا سه تا سفارش داده شده باشه و در نهایت با دکمه سفارش که پایین صفحه هست همون ها تو لیست خرید نهایی بیاد.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغونگاه کنید من یه لیست از وب دریافت می کنم با پارزش می کنم روی ریسایکلر ویو قرارش میدم , تا اینجا مشکلی نیست مقدار اولیه تعداد سفارش هر آیتم صفر هست , حالا میخوام وقتی روی دکمه سفارش کلیک شد , آیتم هایی که بیشتر یه ۱ عدد رو سفارش دادن بگیرم ممکنه کاربر از یک نون یکی سفارش بده یا از همه یا حالا به هر تعداد , مثلا برای نون بربری زد ۳ تا و زد سفارش تو لیست نهایی فقط نون بربری با تعدادش باشه یا مثلا همه رو زد همه نشون داده بشن تو صفحه بعد
این یه نرم افزار نمونه هست نصب کنید مشاهده کنید منظورمو متوجه میشید
http://boghche.ir/app/boghche-release.apk
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغومشاهده کردم شما باید یک رویداد کلیک برای اضافه کردن داشته باشید ولی این کار یکم سخته یه ایده خیلی جالب براتون دارم اگه اون بخش که تعداد رو نمایش میدهد editText باشد میشه یک رویداد براش تعریف کرد یعنی هر وقت مقدار اون EditText عوض شده مقدار های جدید رو پاس بده به اکتیویتی که می خواهید اون رو دریافت کنید برای اینکار از کد های زیر استفاده کنید (من کل کد رو قرار دادم تا متوجه شوید ولی شما بخش مربوط به داخل Bind رو برداردید)
این صد در صد جواب میده کد انتقال داده رو نگذاشتم خودتان قرار دهید در آن بخشی که onTextChanged باید قرار بدید یعنی هر وقت مقدار تغییر کرد این مقدا رو ارسال کن وبرای اینکه توی recyclerView مقادیر رو به یک اکتیویتی دیگه پاس بدید (حتما باید رویداد کلیک در اداپتور باشه وگرنه امکان پذیر نیست)
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوواقعا لطف کردید این به صورت ارایه برمیگردونه ؟ فقط برای یکی جواب میده ؟ یا به تعداد انتخاب های کاربر هست ؟ چون دقت کرده باشید سفارش بدید یه لیستی میاد که نوع سفارش و تعدادش رو تو فاکتور میزنه
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوبله آرایه بر می گردونه برای هرچندتا که انتخاب کند برمی گرداند
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوامکانش هست سورس رو خدمتتون ارسال کنم ؟ تغییرات رو اگه لطف کنید اعمال کنید چون واقعا زیاد سر در نمیارم و واقعا هم سه روزه وقتمو گرفته اگه هزینه هم داره بفرمایید تقدیم کنم چون دقیقا تو همین یک مورد گیر کردم
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوزمان برای این کار وجود ندارد اگر بود براتون رایگان درست می کردم و یه چیزی شما باید متود Onclick رو توی خود آداپتور تعریف کنید وگرنه نمیشه کاریش کرد.
موفق باشید.
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوو این سوال رو بررسی کنید که تا متوجه شوید چه جوری باید کلیک سفارشی درست کنید.
http://programchi.ir/questions/cardview-and-recyclerview-2/
لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.
گزارش لغوممنون از اینکه به سوالاتم جوابگو بودید ولی متاسفانه نتونستم ست کنم با وجود اینکه نمونه هم دادید ولی جواب نداد.