6

私が開発しているアプリには、拡張するアクティビティがありますSherlockFragmentActivity。アクティビティに設定を簡単に追加するために、設定 API を使用したいと思います。API レベル 8 以上をサポートしたいので、クラスからアクティビティを拡張する必要がありSherlockPreferenceActivityます。

問題は、アクティビティがダイアログを表示する必要があることです。ダイアログが拡張されSherlockDialogFragmentます。ダイアログのメソッドには、オブジェクトとタグshow()の 2 つのパラメーターが必要です。 オブジェクトを取得するために、アクティビティのメソッドを呼び出していました。このメソッドは にありません。私は使用しようとしましたが、Eclipseはそれを言いますFragmentManagerString
FragmentManagergetSupportFragmentManager()SherlockPreferenceActivitygetFragmentManager()

タイプ DialogFragment のメソッド show(FragmentManager, String) は、引数 (FragmentManager, String) には適用されません。

からのダイアログ フラグメントを表示するにはどうすればよいSherlockPreferenceActivityですか?

4

2 に答える 2

0

Shared Preferencesを使用するのではなく、使用する必要がありますPreferenceActivity。これらの参照は、Activity に拡張するのではなく、別のヘルパー クラスで宣言します。これにより、カスタム レイアウトを柔軟に作成できます。

例:

public class SharePrefManager {
    // Shared Preferences
    SharedPreferences pref;

    // Editor for Shared preferences
    Editor editor;

    // Context
    Context _context;

    // Shared pref mode
    int PRIVATE_MODE = 0;

    // Sharedpref file name
    private static final String PREF_NAME = "selfhelppref";

    //Your configurable fields
    public static final String KEY_PREF1 = "pref1";
    public static final String KEY_PREF2 = "pref2";
    public static final String KEY_PREF3 = "pref3";


    public SharePrefManager(Context context){
        this._context = context;
        pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = pref.edit();
    }

    //Setter function for configurable field
    public void setPref(String key, String value){
       editor.putString(key, value);
    }

   //Getter function for configurable field
   public String getPref(String key){
           return editor.getString(key);
   }
}

あなたの活動の参照

SharePrefManager SM = new SharePrefManager(this);
SM.setPref(SM.KEY_PREF1, "name");
String value = SM.getPref(SM.KEY_PREF1);
于 2013-09-29T08:32:35.897 に答える
0

を使ってみてくださいSherlockDialogFragment.getSherlockActivity().getSupportFragmentManager()

例: mySherlockDialogFragment.show(mySherlockDialogFragment.getSherlockActivity().getSupportFragmentManager(), "my_tag");

于 2014-03-12T02:16:41.850 に答える