R.string.value zwraca identyfikator referencyjny zasobu „value”. Jeśli spojrzeć na klasy R pojawi się jako coś takiego:
public static final class string {
public static final int value=0x7f040007;
}
byłem problemy z odwoływania się do metody getString(). Dokładny błąd, który Eclipse pluje na mnie jest:
Sposób getString (int) jest nieokreślona dla typu DatabaseHelper.MainDatabaseHelper
Po przeczytaniu na chwilę mam zorientowali się, że trzeba odwołać swoje kontekst aplikacji, aby uzyskać dostęp do metody getString(). Próbowałem utworzyć prywatną klasę pomocniczą SQLDatabase w dostawcy treści, ale to nie pozwalało mi odwoływać się do metody getString(). Moje rozwiązanie jakim jest zrobić coś takiego:
private class MainDatabaseHelper extends SQLiteOpenHelper {
MainDatabaseHelper(Context context) {
super(context, context.getString(R.string.createRoutesTable), null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL((getContext()).getString(R.string.createRoutesTable));
}
}
Zawiadomienie tych odniesień dwie okoliczności:
kontekst .getString()
(getContext()) .getString()
Nie wiem, czy jest to optymalny długoterminowy s ale wygląda na to, że działa. Mam nadzieję że to pomoże.
działało świetnie. dzięki – Simon
@Sephy Mam problem z getString(), wciąż otrzymuję "Metoda getString (int) jest niezdefiniowana ..." co robię źle? – mlevit
Co próbujesz uzyskać za pomocą tej metody? – Sephy