رفتن به مطلب
انجمن توسعه دهندگان موبایل

آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش دوم)


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

logo-setting.jpg

در بخش اول آموزش به چگونگی قرار دادن یک برنامه در تنظیمات بعنوان یک گزینه پرداختیم

در این بخش قرار دادن گزینه در منو فرعی تنظیمات می پردازیم

 

آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش اول)

 

 

در این آموزش ما در منوی فرعی display settings برنامه On-screen-buttons را اضافه می کنیم

 

در اینجا ما به یک منبع اضافی نیاز داریم به نام android:key که کلید اصلی هر برنامه ای است

اگر android:key اصلی را نیافتید،مقدار android:key را در مرجع ids.xml می دهیم

برای شروع اول برنامه On screen button را دیکامپایل کنید

دنبال منابع میریم در AndroidManifest.xml

AndroidManifest.jpg

همان طور که می بینید ما android:targetPackage=”cn.kyle.gn.NavBar را به آسانی پیدا کردیم

تنها یک خط با <activity شروع می شود پس پیدا کردن android:targetClass=”cn.kyle.gn.NavBar.GnNavBarAct ivity”. android:action=”com.android.intent.MAIN”به آسانی است

اکنون نیز به android:title داریم که می تواند هر چیزی باشد که در strings.xml می باشد

android:key می تواند هر چیزی باشد که در ids.xml مراجعش می دهیم

چیز دیگری که بعنوان ورودی نیاز داریم android:summary می باشد، که زیر هدر برنامه می باشد

نمونه ما به شکل زیر در می آید

 

>android:title="navienable_title"
android:key="on_screen"
android:summary="on_screen_summary"
 

وقتی تمام منابع و مقدار انها را درست کردید اکنون ورودی را در res\xml in display_settings.xml وارد می کنیم

><PreferenceScreen android:title="@string/navienable_title" android:key="on_screen" android:summary="@string/on_screen_summary">
       <intent android:targetPackage="cn.kyle.gn.NavBar" android:action="android.intent.action.MAIN" android:targetClass="cn.kyle.gn.NavBar.GnNavBarActivity" />
   </PreferenceScreen>
 

در آخر display_settings باید مانند زیر باشد

display_settings.jpg

فایل را ذخیره کنید

 

 

 

 

اکنون به res/values بروید و فایل strings.xml را باز کنید

 

در اینجا نیاز به وارد کردن دو ورودی داریم

یکی برای android:title=”@string/navienable_title”

و دیگری برای android:summary=”@string/on_screen_summary

مانند زیر دو ورودی را درست می کنیم

 

 

><string name="navienable_title">On-Screen-Buttons</string>
   string name="on_screen_summary">Enable/Disable On-Screen-Buttons</string
 

>

 

 

 

به جایی On-Screen-Buttons شما نام برنامه یا هر چیزی که می خواهید را وارد کنید

فایل strings.xml ما مانند زیر می باشد

strings-1.jpg

فایل خود را ذخیره کنید

 

 

اکنون به مسیر res\values\ids.xml بروید و فایل را باز کنید

 

اینجا نیاز داریم تا یک ورودی در display_settings بعنوان android:key ایجاد کنیم

ورودی ما به شکل زیر می باشد

><item type="id" name="on_screen">false</item>
 

 

 

پس ids.xml ما به شکل زیر در می آید

ids.jpg

فایل خود را ذخیره و کامپایل کنید

نمونه کار ما در آموزش نیز در عکس زیر می باشد

on-screen.jpg

کار تمام شد

 

 

 

 

برای کاملتر شدن آموزش نکته زیر را نیز اضافه کنم

اگر بخواهید که برنامه ای که در تنظیمات قرار می دهید مخفی شود و در لانچر نمایان نشود

در فایل Androidmanifest.xml قسمت زیر را در نظر بگیرید

><activity android:label="@string/app_name" android:name=".GalleryActivity" android:taskAffinity="android.task.pictures" android:configChanges="keyboardHidden|orientation|screenSize">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
               <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
 

 

 

 

و خط زیر را پاک کنید

><category android:name="android.intent.category.LAUNCHER" />
 

 

گاهی ممکن در برخی برنامه ها کد بالا همیشه جواب ندهد

از روش زیر استفاده کنید

>
<activity android:label="@string/app_name" android:name=".GalleryActivity" android:taskAffinity="android.task.pictures" android:configChanges="keyboardHidden|orientation|screenSize">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
               <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
 

 

کد بالا را به شکل زیر دربیارید

 

><intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.DEFAULT" />
               <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
 

موفق باشید

 

 

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

لینک ارسال

در اندروید 5 بجای settings_headers.xml دنبال فایل dashboard_categories.xml باشید

 

همچنین اگر موقع کامپایل با اشکال مواجه شدید

در مسیر smali/com/android/settings یک فایل به نام Maddy.smali درست کنید و کدهای زیر را در آن قرار دهید

 

 

>class public Lcom/android/settings/Maddy;
.super Lcom/android/settings/SettingsPreferenceFragment;
.source "Maddy.java"


# direct methods
.method public constructor <init>()V
   .locals 0

   .prologue
   .line 17
   invoke-direct {p0}, Lcom/android/settings/SettingsPreferenceFragment;-><init>()V

   return-void
.end method


# virtual methods
.method public onCreate(Landroid/os/Bundle;)V
   .locals 1
   .param p1, "savedInstanceState"    # Landroid/os/Bundle;

   .prologue
   .line 21
   invoke-super {p0, p1}, Lcom/android/settings/SettingsPreferenceFragment;->onCreate(Landroid/os/Bundle;)V

   .line 23
   const v0, 0x7f050054

   invoke-virtual {p0, v0}, Lcom/android/settings/Maddy;->addPreferencesFromResource(I)V

   .line 24
   return-void

لینک ارسال

بایگانی شده

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

×
×
  • اضافه کردن...