2016-12-01 2 views
0

Ich habe versucht, alle meine Zeichenfolgen in diese strings.xml-Datei zu bekommen. Nun, wenn ich versuche, es zu laufen, ich diese:

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: de.hsd.ip2.wgapp, PID: 20467 
       android.content.res.Resources$NotFoundException: String resource ID #0x7f060061 
        at android.content.res.Resources.getText(Resources.java:321) 
        at android.content.res.Resources.getString(Resources.java:407) 
        at de.hsd.ip2.wgapp.Firebase.DatabaseContact.addRoom(DatabaseContact.java:215) 
        at de.hsd.ip2.wgapp.DialogfragmentCleaningSchedule$5.onDataChange(DialogfragmentCleaningSchedule.java:242) 
        at com.google.firebase.database.Query$1.onDataChange(Unknown Source) 
        at com.google.android.gms.internal.zzajp.zza(Unknown Source) 
        at com.google.android.gms.internal.zzakp.zzcxi(Unknown Source) 
        at com.google.android.gms.internal.zzaks$1.run(Unknown Source) 
        at android.os.Handler.handleCallback(Handler.java:739) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5294) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 

das ist mein strings.xml:

<resources> 
[...] 
<!-- Firebase Strings --> 
<string name="fLat">Flat</string> 
[...] 
</resources> 

Die R-Datei hat diesen Eintrag für diese Saite:

public static final int fLat=0x7f060061; 

und wenn ich auf irgendeine R.strings.fLat rechtsklicke und "Find usages" benutze, sehe ich die richtige fLat bei Attributwert:

Attribute Value

Oh, und der Punkt, wo ich versuche, es zu bekommen, versuche ich auch eine andere Zeichenfolge und dass man arbeitet zu bekommen, ich selbst flach auf FLAT umbenannt, aber es funktioniert einfach nicht ..

fReference.child(Resources.getSystem().getString(R.string.fLat)).child(Integer.toString(flatId)) 
      .child(Resources.getSystem().getString(R.string.cleaning)) 
      .child(title) 
      .setValue(r) 

ich erhalte die R.string.cleaning ohne Problem ..

Vielen Dank im Voraus für jede Idee :)

+0

'Resources.getSystem()' ist nicht Ihre App 'Resources'. –

Antwort

1

kann man auch nichts Zugriff auf Ihre Ressourcen mit Resources.getSystem(). Wie in API definiert:

Return ein globales Objekt gemeinsam genutzte Ressourcen, die nur Zugriff auf Systemressourcen (keine Anwendungsressourcen)

stattdessen sollten Sie verwenden so etwas wie

context.getResources().getString(R.string.fLat),

bietet oder Wenn Sie sich in einer Aktivität befinden:

getResources().getString(R.string.fLat).

So muss Ihr Code sein:

fReference.child(getResources().getString(R.string.fLat)).child(Integer.toString(flatId)) 
      .child(getResources().getString(R.string.cleaning)) 
      .child(title) 
      .setValue(r) 
Verwandte Themen