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

دسترسی به مقادیر انتخابی List preference ( حتما مطالعه شود....)

Hamedmtn  11 سال پیش  11 سال پیش
0 0

  سلام همونطور که میدونید در فصل هفده استاد  preference ها رو آموزش دادن ...اما متاسفانه به موضوع list preference توجی چندانی نداشتند... کما اینکه list preference بسیار کاربردی و مفید می باشد...بنابر این من تصمیم گرفتم خواندن مقادیر انتخابی کاربر ، از list preference رو در این تاپیک آموزش بدم.

خب کار سختی نیست

طبق آموزشات استاد پس از اینکه یک list preference در فولدر xml و یک array در فولدر value با مقادیر زیر ایجاد کردیم :

 

 <ListPreference android:title="Select your own theme" android:key="LIST_PREFRENCE" 
android:entryValues="@array/colorsAlpha" 
android:entries="@array/Colors" android:enabled="true"/>

<string-array name="Colors">
        <item>Deafult</item>
        <item>Classic Orange</item>
        <item>Green</item>
        <item >Light purple</item>
        <item >Sky blue</item>
       
    </string-array>
   
    <string-array name="colorsAlpha">
        <item >100</item>
        <item >200</item>
        <item >300</item>
        <item >400</item>
        <item >500</item>
    </string-array>


وارد کلاسی که میخواهیم اطلاعات را در آن پیدا کنیم میشویم برای مثال اکتیویتی من ActivityMain نام دارد.

ابتدا یک متد از جنس رشته ایجا میکنیم :

 public String listString;

سپس متغییری از جنس SharedPreference میسازیم و مقدار دهی میکنیم (توجه کنید ک این متغییر را در داخل متد onResume قرار بدید :

 SharedPreferences myPreference = PreferenceManager.getDefaultSharedPreferences(this);

حال گزینه ی انتخابی از list preference را میتوان توسط متغییر بدست آورد و آن را داخل متد listString ذخیره کرد :

 listInt = myPreference.getString("LIST_PREFRENCE", "default choice");

توجّه : LIST_PREFRENCE نام list prefrence من در فولدر xml می باشد.

همانطور که در فولدر array برای هر گزینه از اعداد 100 و200 و300 و.... استفاده کردیم... با کلیک شدن بر روی هر آیتم از list prefrence همان اعداد array داخل متد listString ذخیره میشوند. پس میتوانیم به اینصورت نسبت به آیتم انتخابی کاربر رویداد تایین کنیم :

 if (listInt.contains("100")){
Toast.makeText(LanternActivity.this, "Deafult clicked ", Toast.LENGTH_SHORT).show();
}else if (listInt.contains("100")){
Toast.makeText(LanternActivity.this, "classic orange clicked ", Toast.LENGTH_SHORT).show();
}

توجه داشته باشید هرگز برای مثال بالا my prefrence رو به integer تبدیل نکنید ...اچون باعث میشه برنامتون توی 80 درصد دستگاه های اندرویدی کرش کنه...

همچنین توی این برنامه ازش استفاده کردم لینک

یا علی

 
 برای این سوال پاسخی وجود ندارد.

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