Androidアプリプログラミングの新機能です。何かをして学ぶが、いくつかのことは奇妙に不透明に見える。簡単なアプリをMainActivity
と設定オプション付きのメニューにしてください。defaultSharedPreferencesをaddPreferencesFromResourceに接続するにはどうすればよいですか?
私のバージョン番号を1つの場所(アプリケーションbuild.gradle
ファイル)に設定できるようにします。私は手動でバージョン名とビルド番号(versionCode)を永久に変更します。私のアプリで
def Properties versionProps = new Properties()
def versionPropsFile = file('version.properties')
if (versionPropsFile.exists())
versionProps.load(new FileInputStream(versionPropsFile))
def buildNum = (versionProps['BUILD_number'] ?: "0").toInteger() + 1
versionProps['BUILD_number'] = buildNum.toString()
versionProps.store(versionPropsFile.newWriter(), null)
defaultConfig {
applicationId "com.someCorp.someApp"
minSdkVersion 22
targetSdkVersion 25
versionCode buildNum
versionName "0.2.7"
}
、私はversionCode
とversionName
を取得し、私は私のバージョンのクラスではメジャー、マイナー、およびリリースに後者を打破します。
PackageInfo packageInfo = getPackageManager().getPackageInfo (getPackageName(), 0);
int versionBuild = packageInfo.versionCode;
String versionName = packageInfo.versionName;
myVersion = new Version (versionBuild, versionName);
myversion.toString()
が
someAppバージョン0.2.7.267 \ nMajorバージョン0、マイナーバージョン2を生成し、でも素朴なユーザーが伝えることができるようになりますように、私はこれを行う267
を構築し、7をリリース私はちょうど私が必然的なサポートの呼び出しを得るときに彼らが使用しているバージョン/リリースを正確に。
この文字列を保存して取得するにはdefaultSharedPreferences
を使用できます。しかし
、私は次のように近代的なPreferenceFragment
方法を使用してPreferenceActivity
のサブクラスを起動する設定/設定メニューの項目を行うための推奨される方法を使用して...
public boolean onOptionsItemSelected (MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_settings_item:
Intent i = new Intent (this, someAppPreferenceActivity.class);
startActivityForResult (i, RESULT_SETTINGS);
break;
.
public class someAppPreferenceActivity extends PreferenceActivity {
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
getFragmentManager().beginTransaction().replace (android.R.id.content, new MyPreferenceFragment()).commit();
} // OnCreate (Bundle)
public static class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate (final Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
addPreferencesFromResource (R.xml.settings);
} // onCreate (Bundle)
} // class MyPreferenceFragment
...設定は、表示するビュー
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:key="pref_version"
android:title="@string/pref_version"
android:summary="@string/pref_version_summ"
android:defaultValue="true" />
</PreferenceScreen>
とs trings.xm
リットルが
settings.xml
" リソースファイルから設定
実際の値で上書きされる偽の文字列です。
私の質問:
どのように(つまりどこ)は、設定ビューに表示されますので、というのが私のsettings.xml
に表示されるように、私は私がSharedPreferences
(隠された)ファイルに保存した変更を取得するのですか? settings.xml
または設定ビューに直接保存できる場合は、SharedPreferences
の手順をスキップできます。
私は多くの検索を行っていますが、2つを接続する方法がないようです。例とチュートリアルでは、両方の方法を説明しますが、接続方法は説明しません([設定]メニューに保存された環境設定を表示する)。
http://www.101apps.co.za/index.php/articles/preference-settings.html
ます。http://viralpatel.net/blogs/android-preferences-activity-example/
ます。https://developer.android.com/reference/android/preference/PreferenceActivity.html
PreferencesFromResource
にアクセスして、値を変更して設定ビューに追加する方法が見つかりません。理論的には、断片を切り開いて1つを変え、それをビューに表示できるようにする必要がありますが、それらを処理する方法は見つけられません。 SharedPreferences
には、実行可能なキーと値のペアシステムがあります。
PreferenceFragment.setValue (String key, String value)
またはedit()
のようなものは見つかりませんでした。
たとえば、この質問How to get a preference value in preference fragmentには、フラグメント内にSharedPreferences
という回答がありますが、設定ビューと関連付ける方法については本当に質問に答えていません。私はそこに保存されたSharedPreferences
の値を読んで見ることができますが、それをフラグメントの階層に張ったり、設定ビューに追加する方法はありますか?
おかげCharuka。 – Alan