2017-07-29 5 views
0

Ist es möglich, in gemeinsame Vorliebe von Android für den Zugriff auf nativen reagieren? Zum Beispiel, wenn ich einZugriff auf gemeinsame Vorliebe in reagieren nativen

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

Wie können die Tasten dann in zugegriffen werden reagieren nativen erstellen?

+0

Haben Sie haben var SharedPreferences = require ('react-native-shared-preferences') importiert; – Mandy8055

+0

@ Mandy8055 Was bedeutet es? –

+0

Ignorieren Sie, dass ich einen anderen Weg gefunden habe, um es leicht verständlich zu machen. – Mandy8055

Antwort

0

Sie können etwas tun:

In Ihrer Klasse Handler Sie einen Konstruktor und eine Init-Methode kannst bei diesem Kontext zu bekommen, um den Anwendungskontext des ReactNatives.

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(); 
} 

In Ihrer Klasse, die Daten bereitstellt (provideData) Sie können

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; 
} 

etwas tun, und schließlich Ihre Schlüssel in der RNSharedPreference bekommen (getReactApplicationContext())

@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); 
} 
Verwandte Themen