2012-10-21 13 views
5

Wie behebe ich diesen Fehler? Alle drei Strings unten erhalten den folgenden Fehler "die Methode getString (int) ist für den Typ Apps nicht definiert". Bitte helfen Sie mir, ich bin so ein Noob.Die Methode getString (int) ist nicht definiert für den Typ Apps

package com.actionbarsherlock.sample.fragments; 

import android.content.Context; 
import android.content.res.Resources; 


public final class Apps { 
/** 
* Our data, part 1. 
*/ 
public static final String[] TITLES = 
{ 
     "title1", 
     "title2", 
     "title3" 
}; 

/** 
* Our data, part 2. 
*/ 
public static final String[] DIALOGUE = { 

    getString(R.string.text1), 

    getString(R.string.string2), 

    getString(R.string.string3) 

}; 
} 
+0

Sie versuchen, eine nicht existierende Methode aufzurufen. Es gibt wirklich nicht viel, was wir tun können, um Ihnen zu helfen, es zu reparieren, ohne zu wissen, was Sie zu tun versuchen. – Vulcan

+0

Willst du etwas erweitern? Was versuchen Sie, Unterklasse? – RyanG

+0

die Person, die mir dabei hilft, sagte: "getString stammt aus der Aktivitätsklasse, also muss Ihre Klasse von der Aktivität erben, oder Sie müssen getString von einer Klasse aufrufen, die bereits von Aktivität erbt." – idroid8

Antwort

5

Erste getString ist kein statisches Verfahren, können Sie es in einem statischen Kontext fordern dies nicht getan werden kann.

Zweitens ist die getString Methode Teil der Resources Klasse, Ihre Klasse erweitert nicht die Resources Klasse, so dass die Methode nicht gefunden werden kann.

Ich denke, eine Instanz der Resources Klasse zu Ihrem Apps Klasse mit seinem Konstruktor zu analysieren wäre Ihre beste Option.

Etwas wie folgt aus:

public final class Apps { 

    public Apps(Resources r){ 
    DIALOGUE = new String[]{ 
     r.getString(R.string.text1), 
     r.getString(R.string.string2), 
     r.getString(R.string.string3)}; 
    } 


/** 
* Our data, part 1. 
*/ 
public static final String[] TITLES = 
{ 
     "title1", 
     "title2", 
     "title3" 
}; 

/** 
* Our data, part 2. 
*/ 
public static String[] DIALOGUE; 
} 
+0

haben den Fehler los, aber ich muss etwas anderes beheben Ich brb mit den Ergebnissen :) – idroid8

+0

Mhhh, wenn ich eine Kategorie dann App Titel die App Kraft auswählen schließt. Ill spielen mehr herum, aber Ihre Antwort war am hilfreichsten. – idroid8

24

passieren eine Instanz von Context context

und dann

verwenden
context.getResources().getString(R.string.text1) 

hier context gehört zu Ihrer aktuellen Aktivität.

+0

das löste mein Problem, danke – Alaa

+0

Ich folgte diesem und schrieb Preferences.getBoolean (getString (R.string.pref_mypreference), false) zu Preferences.getBoolean (*** getContext(). *** getString (R.string.pref_mypreference), falsch) und Bob wurde mein Onkel: D (die *** sind nicht wörtlich, sondern zeigen, was sich nur verändert);) –

Verwandte Themen