کلیدستان

نسخه‌ی کامل: تنظیمات بر اساس لیستی از انتخاب ها (اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام.
من دارم یه برنامه می نویسم ولی تو این قسمتش گیر کردم!

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

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

کلید شماره 288

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

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

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

تشکر.
 
(۱۳۹۴/۰۳/۱۲, ۰۷:۵۷ ب.ظ)'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) {                        
                        // کد خود را اینجا بنویسید  
            }

        }); 

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

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

تشکر .

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

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

 

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

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

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