dodanie stringa do metody

0
  String obraz1=k.getString(4);
 whoamiwith.setImageDrawable(getResources().getDrawable(R.drawable.+"obraz1"));

w jaki sposób dodać ten string wyciągnięty z bazy do funkcji jw? podkreśla mi + i jest błąd: "identifier expected"

0

Zwróć uwagę co Ty w ogóle przekazujesz do tej metody setImageDrawable

R.drawable.+"obraz1"
 

Z tego co widzę potrzebujesz zrobić łączenie dwóch stringów (konkatenacje). Tylko jakich?

  1. R.drawable. kropka na końcu tego nie wygląda poprawnie pewnie to jakieś pole statyczne i coś tam jeszcze powinno się znaleźć po kropce?
  2. Jeżeli obraz1 to zmienna typu String, którą masz linijkę wyżej to nie podajesz tego w cudzysłowach.
0

no właśnie to jest problem, że to nie jest string

whoamiwith.setImageDrawable(getResources().getDrawable(R.drawable.obraz)); 

ten obraz jest typu @DrawableRes int id, a ja muszę dodać z bazy stringa właśnie po kropce

0

albo może znacie jakąś inną metodę, w której jako źródło obrazu można podać stringa?

1

Ok, nie piszę na Androida, ale chyba wiem o co Ci chodzi. Rozumiem, że

k.getString(4)

zwraca Ci nazwę jakiegoś zasobu, który póżniej probujesz wykorzystać jako nazwę do pola statycznego w klasie R.drawable?
Taki składaniec jaki chcesz zrobić nie wchodzi w grę. Masz dwie opcję:

  1. Wykorzystać do tego z refleksję (mniej eleganckie).
  2. Skorzystać z metody http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier%28java.lang.String,%20java.lang.String,%20java.lang.String%29
    która zwróci Ci id zasobu i wtedy będzie mogła go wykorzystać.

Zerknij tutaj:
http://stackoverflow.com/questions/6583843/how-to-access-resource-with-dynamic-name-in-my-case

0

ok, dzięki.
rozwiązanie:

 int id = getResources().getIdentifier(obraz1, "drawable", getPackageName());
                whoamiwith.setImageDrawable(getResources().getDrawable(id));

1 użytkowników online, w tym zalogowanych: 0, gości: 1