7

設定UIの構築について学習しようとしていますが、Androidドキュメントで、設定がインテントになる可能性があることがわかりましたが、そのインテントが設定値(ファイルの開始によって選択されたファイル名など)を返すことができるかどうかは疑問です。セレクターアクティビティ)?

または、プリファレンス設定の一部としてファイル名またはディレクトリ名を選択する場合、カスタムプリファレンスビューを作成する必要がありますか?これの便利な例はどこかにありますか?(人々が私に多くのことをするようなもののようです)。

4

1 に答える 1

17

[編集済み] まず、preference.xml ファイルに設定を作成します

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

    <Preference
            android:title="Pick file"
            android:key="filePicker" 
    />
</PreferenceScreen>

設定アクティビティで次の操作を行います

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    Preference filePicker = (Preference) findPreference("filePicker");
    filePicker.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(......); //Intent to start openIntents File Manager
            startActivityForResult(intent, requestMode);
            return true;
        }
    });
}

環境設定アクティビティで onActivityResult をオーバーライドするようになりました

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //get the new value from Intent data
    String newValue = ....;
    SharedPreferences preferences = ......;
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString("filePicker", newValue);
    editor.commit();
}
于 2012-09-09T16:57:10.313 に答える