رفتن به مطلب
  • 0

مشکل در آپدیت آداپتر کاستوم لیست


hadi2016

سوال

سلام.دوستان من یه کاستوم لیست تعریف کردم. ورودیش سه تا آرایه رشته ای هست.

اولی آرایه ای از id ها

دومی آرایه ای عنوان ها

سومی آرایه url عکس

با این کاستوم لیست ویو که ساختم بدون مشکل عنوان ها و عکس رو بدون مشکل لیست میکنه

مشکل من اینجاست که وقتی بخوام داده های جدید به لیست ویوم اضافه کنم که به ادامه لیست اضافه بشن باید چیکار کنم؟

قطعه کد پایین تعریف لیست ویوم و پاس دادن سه تا آرایه

u52rklra04tr.png

 

اینم کد کلاس CustomList

 

9ka5e9nc8eiq.png

 

از راهنمایتون پیشاپیش ممنونم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام و درود. شما به جای پاس دادن سه تا آرایه میتونید یه آرایه ایجاد کنید از یک کلاس که شامل اون سه تا فیلد هست. و به نظرم به جای لیست ویو بهتره از ریسایکلر ویو استفاده کنید که بسیار قویتره.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 1 ساعت قبل، محمدرضا شاهپیری گفته است :

سلام و درود. شما به جای پاس دادن سه تا آرایه میتونید یه آرایه ایجاد کنید از یک کلاس که شامل اون سه تا فیلد هست. و به نظرم به جای لیست ویو بهتره از ریسایکلر ویو استفاده کنید که بسیار قویتره.

ممنون از راهنماییت. حالا با این کدها من چطور میتونم داده های جدید به ادامه لیست ویو اضافه کنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اول اینکه همونطور که جناب شاهپیری گفتن از یه List یا ArrayList استفاده کنید

من تاحالا با این روش کار نکردم و منطقی هم نیست به نظرم

یه کلاس بسازید به این صورت :

public class DataModel{
	private String name;
	private String title_news;
	private String url;

	public void setName(String name){
		this.name = name;
	}
	public void setTitleNews(String title_news){
		this.title_news = title_news;
	}
	public void setUrl(String url){
		this.url = url;
	}
	
	public String getName(){
		return name;
	}

	public String getTitleNews(){
		return title_news;
	}

	public String getUrl(){
		return url;
	}

}

حالا ArrayAdapter رو از نوع استرینگ نذار و اینطوری تعریفش کن

public class MyArrayAdapter extends ArrayAdapter<DataModel>{
  	ArrayList<DataModel> mList = new ArrayList<DataModel>();
  	public MyArrayAdapter(Context context, ArrayList<DataModel> myList){
  		super(context, R.layout.adapter_layout, myList);
  		mList = myList;
  	}
  
  	public View getViews(int position, ...){
  		textView.setText(mList.get(position).getTitleNews());
  	}
}

 

حالا برای بار های بعد اگه بخوای لیستت رو آپدیت کنی باید اینطوری آپدیتش کنی

adapter = new MyArrayAdapter(this, list);
adapter.notifyDataSetChanged();

 

این باید جواب بده

البته حالا که کداتو نوشتی و نمیخوای عوضشون کنی سعی کن به آرایه قبلیت اضافه کنی جدید هارو
و notifyDataSetChanged رو صدا بزن ببین تاثیری داره یا نه

 

موفق باشی

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...