آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوال در مورد ساخت لیست علاقه مندی

kyanoosh74  7 سال پیش  7 سال پیش
0 0

سلام دوستان .

یه مشکلی دارم که چند روزه درگیرشم و درست نمیشه.

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

سه تا اکتیویتی دارم. اولی لیست اصلی واولیه داخلشه. لیست شامل یک عکس ویک متنه.صفحه دومی که با کلیک روی هر ایتم از لیست باز میشه (هرایتم  باخودش یک استرینگ میبره که باتوجه به این استرینگ موضوعی نشون داده میشه در صفحه دوم ). میخوام اگه رو عکسی که کذاشتم تواین صفحه دوم کلیک شد.اون ایتم از لیست به اکتیویتی سوم که شامل یک لیست ویو است ،اضافه بشه.

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

صفحه اول :

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@SuppressLint("CommitPrefEdits")
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, DetailStadium.class);
intent.putExtra("title", String.valueOf(adapter.getItem(position).name));
intent.putExtra("image", adapter.getItem(position).image);
startActivity(intent);


}

});


صفحه دوم



img_FavEmpty.setOnClickListener(new View.OnClickListener() {
@Override

public void onClick(View v) {
boolean b2 = shared.getBoolean(title, false);
if (b2) {
editor.putBoolean(title, false);
editor.apply();
img_FavEmpty.setImageResource(R.drawable.ic_star_border_black_24dp);

} else {
editor.putBoolean(title, true);
editor.putString("title", title);
editor.putInt("imageId", imageId);
editor.apply();
img_FavEmpty.setImageResource(R.drawable.ic_star_black_24dp);

}
}
});


صفحه سوم


final SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
list_Favorites = (ListView) findViewById(R.id.list_Favorites);
name = shared.getString("title", "");
final boolean b = shared.getBoolean(name, false);
image = shared.getInt("imageId", 0);
sampleList_Favorites = ListInput.get();
sampleList_Favorites.clear();


if (b) {
sampleList_Favorites.put(name, image);
// sampleList_Favorites = ListInput.get_Favorites(name,image);
row_Favorites = new ArrayList<>();
}
row_Favorites = new ArrayList<>();
final Set<String> keyset = sampleList_Favorites.keySet();
for (String key : keyset) {
int value = sampleList_Favorites.get(key);
row_Favorites.add(new T(key, value));
}
adapter_Favorites = new ListAdapter(this, row_Favorites);
list_Favorites.setAdapter(adapter_Favorites);








  1. میدونم دارم برای همه ایتم ها یکجور اسم رو سیو میکنم .ولی نمیدونم باید چیکارکنم...ممنون میشم کمکم کنید .
 
+1 0
شما باید با استفاده از لیست های جنریک و کالکشن، یک لیستی از داده ها رو به محل ذخیره سازی (pref یا sql) منتقل کنید برای ذخیره سازی مقادیر لیست علاقه مندی ها (7 سال پیش)
0 0
داداش بیشتر توضیح میدی ؟ (7 سال پیش)
+1 0
تو آموزش های استاد کامل شرح داده شده. ولی میتونید از این لینک هم استفاده کنید : لینک (7 سال پیش)
+1 0
برادر چرا داری تو پریفرنسش ذخیره میکنی؟ مگه تنظیمات برنامته که اینجوری میکنی... برای این لیست بهتره یه دیتابیس بسازی که یه ستون داشته باشه استرینگ مربوط به عکسو با دستور INSERT ذخیره کنه و هر بار که خواستی لیست علاقمندی ها رو ببینی یه SELECT * FROM flanTable میزنی همه رو میاره راحت... ولی تا وقتی تو پریفرنس ذخیره کنی و فقط از یه اسم title استفاده کنی خب معلومه که هر بار که ذخیره میزنی مقدار title فقط update میشه نه اینکه insert بشه... (7 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .