2012-10-21 7 views
5

Come correggere questo errore. Tutte e tre le stringhe in basso ottengono il seguente errore "il metodo getString (int) non è definito per il tipo Apps". Per favore aiuto, sono un tale noob.Il metodo getString (int) non è definito per il tipo 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

Stai provando a chiamare un metodo inesistente. Non c'è davvero molto che possiamo fare per aiutarti a risolverlo senza sapere cosa stai cercando di fare. – Vulcan

+0

Hai intenzione di estendere qualcosa? Cosa stai cercando di creare una sottoclasse? – RyanG

+0

la persona che mi ha aiutato con questo ha detto "getString proviene dalla classe di attività, quindi la tua classe deve ereditare dall'attività, oppure devi chiamare getString da una classe che eredita già dall'attività." – idroid8

risposta

5

Prima getString non è un metodo statico, che si sta chiamando in un contesto statico questo non può essere fatto.

In secondo luogo il metodo getString fa parte della classe Resources, la classe non estende la classe Resources in modo che il metodo non possa essere trovato.

Penso che analizzare un'istanza della classe Resources nella classe Apps utilizzando il suo costruttore sarebbe la soluzione migliore.

Qualcosa di simile a questo:

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

Eliminato l'errore ma devo aggiustare qualcos'altro Mi verrà il brutto con i risultati :) – idroid8

+0

mhhh quando seleziono una categoria quindi titolo app la forza app chiude. Ti divertirò di più ma la tua risposta è stata la più utile. – idroid8

24

passare un'istanza di Context context

e quindi utilizzare

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

qui context è appartiene alla vostra attività in corso.

+0

questo ha risolto il mio problema, grazie – Alaa

+0

Ho seguito questo e riscritto Preferences.getBoolean (getString (R.string.pref_mypreference), false) in Preferences.getBoolean (*** getContext(). *** getString (R.string.pref_mypreference), falso) e Bob è diventato mio zio: D (il *** non è letterale, ma mostra solo ciò che è cambiato);) –

Problemi correlati