2017-07-29 16 views
0

それはネイティブ反応するネイティブ?例えば、私が作成した場合アクセス共有優先して反応するネイティブ

SharedPreferences sharedpreferences = getSharedPreferences("somePreference", Context.MODE_ENABLE_WRITE_AHEAD_LOGGING);

がどのようにキーは、その後にアクセスすることができます反応するにアンドロイドの共有好みにアクセスすることは可能ですか?あなたのHandlerクラスでは、あなたがReactNativesのアプリケーションコンテキストにこのコンテキストを取得するには、コンストラクタとinitメソッドを作成することができます

+0

がありますvar SharedPreferences = require( 'react-native-shared-preferences');をインポートしました。 – Mandy8055

+0

@ Mandy8055それはどういう意味ですか?心が凝っていますか? –

+0

私はそれを容易に理解できる別の方法を見つけたことを無視します。 – Mandy8055

答えて

0

あなたはこのような何かを行うことができます。

あなたが何か

public static String[] getAllKeys() { 
    Map<String, ?> keyValues = Handler.getInstance().getAllSharedData(); 
    List<String> keys = new ArrayList<>(keyValues.keySet()); 
    String[] results = new String[keys.size()]; 
    for (int i = 0; i < keys.size(); i++) { 
     results[i] = keys.get(i); 
    } 
    return results; 
} 

を行い、最終的にRNSharedPreference(getReactApplicationContext())にあなたの鍵を得ることができるデータを提供しているクラス(ProvideData)で

private static Handler handler; 
public Handler(Context context) { 
SharedPreferences sharedpreferences = context.getSharedPreferences(SHARED_NAME, Context.MODE_PRIVATE); 
} 
public static void init(Context context) { 
    handler = new Handler(context); 
} 
//Getting keys to the React native 
public Map<String, ?> getAllSharedData(){ 
    return sharedpreferences.getAll(); 
} 

@ReactMethod 
public void getAllKeys(Callback successCallback){ 
    Handler.init(getReactApplicationContext()); 
    String[] keys = ProvideData.getAllKeys(); 
    WritableNativeArray data = new WritableNativeArray(); 
    for(int i=0; i<keys.length; i++){ 
     data.pushString(keys[i]); 
    } 
    successCallback.invoke(data); 
} 
関連する問題