انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

#1
سلام.
من دارم یه برنامه می نویسم ولی تو این قسمتش گیر کردم!

میخوام تو تنظیمات برنامه یه لیست ویو بزارم که مثلا اسامی ماشین ها توش نوشته شده باشه  .کاربر واسه یک بار تو تنظیمات اپلیکیشن ماشین موردنظرش رو انتخاب می کنه و از اون به بعد هر بار که اپلیکیشن رو باز میکنه به اکتیویتی ماشین مورد نطرش هدایت میشه . (یعنی با انتخاب هر ماشین تو تنظیمات ، صفحه اصلی برنامه تغییر کنه )

 کسی می تونه راهنماییم کنه که باید چیکار کنم ؟
پاسخ

تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

#2
سلام.
با استفاده از SharedPreferences ، یک متغیر از جنس int تعریف می کنید :

کلید شماره 288

برای انتخاب ها، یک ListView خواهیم داشت (کلید شماره 843) که تعیین می کنیم با اشاره بر روی هر item از ListView ، شماره متناظر با انتخاب، در متغیر تعریف شده توسط SharedPreferences ذخیره شود.
در Activity اول، چک می کنیم که آیا متغیر تعریف شده توسط SharedPreferences ، مقداردهی شده است یا نه. اگر مقداری برای آن تعیین نشده باشد (چگونگی تشخیص آن، در همان کلید 288 ذکر شده، مثلا می توان مقدار پیش فرض 0 را برای آن در نظر گرفت)، یک محتوا (مثلا لیست اصلی) نمایش داده شود و یا چنانچه مقداری برای آن متغیر تعریف شده باشد (مقداری غیر از 0 برگردانده شود)، محتوای متناسب با آن انتخاب نمایش داده شود (یا به یک Activity خاص برویم).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط sky

تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

#3
نقل قول:برای انتخاب ها، یک ListView خواهیم داشت (کلید شماره 843) که تعیین می کنیم با اشاره بر روی هر item از ListView ، شماره متناظر با انتخاب، در متغیر تعریف شده توسط SharedPreferences ذخیره شود.

سلام .
ممنون بابت راهنمایی.
من مواردی رو که گفتید متوجه شدم و انجامش دادم ولی مورد بالا رو نمی تونم انجام بدم !
میشه بیشتر راهنمایی بفرمایید؟
نمیدونم چجوری شماره آیتم کلیک شده رو بدست بیارم و ذخیرش کنم!

تشکر.
 
پاسخ

تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

#4
(۱۳۹۴/۰۳/۱۲, ۰۷:۵۷ ب.ظ)'sky' نوشته:
نقل قول:برای انتخاب ها، یک ListView خواهیم داشت (کلید شماره 843) که تعیین می کنیم با اشاره بر روی هر item از ListView ، شماره متناظر با انتخاب، در متغیر تعریف شده توسط SharedPreferences ذخیره شود.

سلام .
ممنون بابت راهنمایی.
من مواردی رو که گفتید متوجه شدم و انجامش دادم ولی مورد بالا رو نمی تونم انجام بدم !
میشه بیشتر راهنمایی بفرمایید؟
نمیدونم چجوری شماره آیتم کلیک شده رو بدست بیارم و ذخیرش کنم!

تشکر.
 

در همان کلید شماره 843 کد زیر را ببینید :

کد پی‌اچ‌پی:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @
Override
            
public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {                        
                        Intent i = new Intent(getApplicationContext(), SecondActivity.class);
                        number_of_keys = String.valueOf(position+1); 
                        i.putExtra("key_number", number_of_keys);
                        startActivity(i);       
            }

        }); 

متغیر position ، شماره متناظر با item اشاره شده را به شما می دهد. دقت شود که lv همان ListView است که شناسایی کرده ایم.
کافی است کد نمونه بالا را کمی تغییر دهید.
کد پایه برای روش setOnItemClickListener :

کد پی‌اچ‌پی:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @
Override
            
public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {                        
                        // کد خود را اینجا بنویسید  
            }

        }); 

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ehsansalehi2001 ، sky

تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

#5
سلام .
تشکر بابت راهنمایی کاملتون ... کامل متوجه شدم و تونستم اجراش کنم .
فقط یه نکته اینکه با این روش اگه اپلیکیشن رو بدون اینکه unistall کنیم و دوباره نصب کنیم (replace) اطلاعات ذخیره شده قبلی پاک نمی شه و روی نصب جدید set  میشه .
به جز این دو راه حلی که در زیر می نویسم آیا بوسیله کد نویسی راهی وجود داره که مورد بالا اتفاق نیفته ؟!

1- اول برنامه رو unistall کنیم و بعد برنامه رو دوباره نصب کنیم .
2-واسه برنامه مورد نظرمون تو قسمت تنظیمات اپلیکیشن گوشی clear data رو انجام بدیم .

تشکر .

 
پاسخ

تنظیمات بر اساس لیستی از انتخاب ها (اندروید)

#6
(۱۳۹۴/۰۳/۱۳, ۰۶:۱۱ ب.ظ)'sky' نوشته: فقط یه نکته اینکه با این روش اگه اپلیکیشن رو بدون اینکه unistall کنیم و دوباره نصب کنیم (replace) اطلاعات ذخیره شده قبلی پاک نمی شه و روی نصب جدید set  میشه .
به جز این دو راه حلی که در زیر می نویسم آیا بوسیله کد نویسی راهی وجود داره که مورد بالا اتفاق نیفته ؟!

1- اول برنامه رو unistall کنیم و بعد برنامه رو دوباره نصب کنیم .
2-واسه برنامه مورد نظرمون تو قسمت تنظیمات اپلیکیشن گوشی clear data رو انجام بدیم .

 

بستگی دارد که منظورتان برای کاربران باشد یا برای خودمان که توسعه دهنده هستیم و می خواهیم برنامه اندروید را تست کنیم.

اگر منظورتان برای خود توسعه دهنده است، بنده معمولا uninstall می کنم (برای تست برنامه اندروید، از اول)، همچنین پوشه هایی هم که برنامه اندروید در حافظه خارجی (External Storage) می سازد را پاک می کنم و سپس برنامه اندروید را دوباره نصب می کنم. این مورد را زمانی انجام می دهم که تغییراتی در کدهای مرتبط با ذخیره سازی اطلاعات یا ساخت پوشه ها، ایجاد کرده باشم.

برای کاربران، اگر از SharedPreferences استفاده شده باشد و بخواهیم اطلاعات قبلی لغو شود، می توان اصلا نام جدید برای متغیر انتخاب کرد تا دیگر آن نام قبلی فراخوانی نشود.
در مورد clear data ، تا حالا این کار را انجام نداده ام و باید دقت داشته باشید که ما در بخش های مختلف برنامه اندروید، اطلاعاتی را در حافظه داخلی (Internal Storage) ذخیره می کنیم. مثلا اگر از پایگاه داده SQLite استفاده کرده باشید (ساخته باشید) و برای آن، مسیری در حافظه خارجی (External Storage) تعیین نکرده باشید، اطلاعات آن در حافظه داخلی (Internal Storage) ذخیره شده است. پس هنگام استفاده از آن در برنامه (برای کاربران)، مراقب این موارد باشید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان