EDYCJA: Niestety, zdałem sobie sprawę z twojego komentarza, moje pytanie nie było wystarczająco jasne. Napiszę nowy. Przepraszam za to i dziękuję za twoje odpowiedziUstawić program do rysowania jako tło
Wypełniam listview z pliku Json. Dzięki mojemu listadapterowi mogę łatwo przypisać odpowiednie dane json do każdego wiersza mojej listy. Że działa dobrze dla tekstu, na przykład:
TextView tv = (TextView)ll.findViewById(R.id.descView);
tv.setText(i.desc);
Z powyższego kodu, każdy wiersz będzie prawidłowo wypełniona przez dobrych danych JSON.
Jednak nie uda mi się zrobić tego samego dla obrazu. Próbowałem ustawić prawidłowy obraz z moich danych JSON za pomocą tego:
ImageView iv = (ImageView)ll.findViewById(R.id.imgView);
iv.setBackgroundDrawable(context.getResources().getDrawable(i.img));
Chyba robię coś złego rodzaju moich parametrów: „setBackgroundDrawable” wymaga rozciągliwej parametr. "getDrawable" wymaga int. Ustawiłem typ mojego pola img na int, ale to nie działa.
Każdy pomysł, dlaczego?
Moja lista adapter:
public class adapter extends ArrayAdapter<ListItems> {
int resource;
String response;
Context context;
//Initialize adapter
public ListItemsAdapter(Context context, int resource, List<ListItems> items) {
super(context, resource, items);
this.resource=resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
//Get the current object
ListItems i = getItem(position);
//Inflate the view
if(convertView==null)
{
ll = new LinearLayout(getContext());
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater li;
li = (LayoutInflater)getContext().getSystemService(inflater);
li.inflate(resource, ll, true);
}
else
{
ll = (LinearLayout) convertView;
}
//For the message
TextView tv = (TextView)ll.findViewById(R.id.descView);
tv.setText(i.desc);
// For the Img
ImageView iv = (ImageView)ll.findViewById(R.id.imgView);
iv.setBackgroundDrawable(context.getResources().getDrawable(i.img));
return ll;
}
moja klasa pozycja:
public class ListItems{
int id;
int img;
String desc;}
I próbka mojego pliku json:
[{"id":10001,"img":e1,"desc":"desc1"},
{"id":10002,"img":e2,"desc":"desc2"},
{"id":10003,"img":e3,"desc":"desc3"}]
Prawdopodobnie chcesz użyć setImageResources, które przyjmą int jako parametr i ustawi src twojego widoku obrazu. Nadal problem nie jest ustawiony na setBackgroundDrawable. Również twój kod nie może działać. ll nie zawiera ani widoku tekstowego, ani widoku obrazu. – Blackbelt
Co oznacza e1? Gdzie jest obraz w twoich danych json? – Oam
Czy możesz opublikować układ "zasobów"? – Blackbelt