2015-08-07 3 views
1

Id хотел бы добавить мою версию приложения и, возможно, построить на моем SettingsActivity.Как показать версию приложения в разделе «Настройки»?

Я пытаюсь показать активность стиля «О телефоне» в своем приложении. Но я не знаю, как это сделать.

настоящее время я использую EditTextPreference в моем preference.xml, который вызывает диалог по щелчку, но я хочу, чтобы это было так, когда событие OnClick не производит диалог .:

Nexus 5 screenshot

SettingsActivity .java

public class SettingsActivity extends PreferenceActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    addPreferencesFromResource(R.xml.pref_general); 
} 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 

    LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent(); 
    Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.tool_bar, root, false); 
    root.addView(bar, 0); // insert at top 
    bar.setTitle("Settings"); 
    bar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      finish(); 
     } 
    }); 
} 

}

pref_general.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:title="Settings"> 

<PreferenceCategory android:title="About" > 
    <EditTextPreference 
     android:title="Version" 
     android:summary="@string/app_version" 
     android:key="prefUsername"/> 
</PreferenceCategory> 

И еще одна вещь, есть ли способ, чтобы получить приложение и номер сборки из Gradle с помощью XML.

Я знаю, что я называю пещерным человеком, и я обычно вручную обновляю их в файле strings.xml, но в своей защите я новичок в Android.

+2

* Я называю пещерным человеком * - не бить себя, мы видели * намного хуже здесь, на SO;) Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/ 4616095/how-to-get-the-build-version-of-your-android-application), чтобы получить номер сборки вашего приложения. – 2Dee

+0

Спасибо за поддержку bro – silberbaum

ответ

6

Я закончил с этим.

enter image description here

Вместо расширения классов и этажерки я пошел с этим

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity { 

public static final String TAG = "caveman"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    addPreferencesFromResource(R.xml.pref_general); 

    Preference pref = findPreference("developer"); 
    pref.setSummary("Marathon Apps"); 

    Preference pref1 = findPreference("version"); 
    try { 
     pref1.setSummary(appVersion()); 
    } catch (PackageManager.NameNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 

    LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent(); 
    Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.tool_bar, root, false); 
    root.addView(bar, 0); // insert at top 
    bar.setTitle("Prism"); 
    bar.setSubtitle("Settings"); 
    bar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      finish(); 
     } 
    }); 
} 

public String appVersion() throws PackageManager.NameNotFoundException { 
    PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); 
    String version = pInfo.versionName; 
    return version; 
} 

}

pref_general.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
<PreferenceCategory 
android:title="About"> 
<PreferenceScreen 
    android:title="Developer" 
    android:key="developer" 
    android:summary="Marathon Apps"> 
</PreferenceScreen> 

<PreferenceScreen 
    android:title="Version" 
    android:key="version" 
    android:summary="1.0"> 
</PreferenceScreen> 
</PreferenceCategory> 


</PreferenceScreen> 
1

Вы можете создать свой собственный Preference, переопределяя метод onClick так, чтобы он ничего не делал. Вы даже можете расширить EditTextPreference, если вы не хотите делать все с нуля.

Не забудьте указать полное имя для класса в файле pref_general.xml.

 Смежные вопросы

  • Нет связанных вопросов^_^