Как настроить каждый элемент списка с изображением из Drawable? - PullRequest
1 голос
/ 06 января 2012

Например, если мне нужно создать собственное представление списка о типе еды, в каждом списке list_item содержатся логотип типа еды, название типа еды.Если я храню название типа еды в строковом ресурсе и сохраняю картинку каждого типа еды в отрисовке.

1) Как я могу получить картинку из раскладки и установить в список?2) Как получить картинку, соответствующую названию типа еды

Заранее спасибо.

public class FoodListActivity extends ListActivity {

    private CustomListAdapter listAdapter;
    private String[] food_type_name;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foodlistholder);

       food_type_name = getResources().getStringArray(R.array.food_name_array);


        listAdapter = new CustomListAdapter(this, R.layout.list_item_food, food_type_name);



        setListAdapter(listAdapter);


    private class CustomListAdapter extends ArrayAdapter<String>{

        private String[] items;

        public CustomListAdapter(Context context, int textViewResourceId,
                String[] items) {
            super(context, textViewResourceId, items);
            this.items = items;
        }


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if(v == null){
                LayoutInflater  vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.list_item_food, null);
            }

            TextView foodNameStr = (TextView)v.findViewById(R.id.food_name_txt);

            foodNameStr.setText(items[position]);
                //How to set Image view form drawable, which match the food's type name

        return v;


    }

  }

}

1 Ответ

2 голосов
/ 06 января 2012

Точно так же, как вы сделали, установив текст, но для ImageView.

ImageView foodPhoto = (ImageView)v.findViewById(R.id.food_photo);
foodPhoto.setImageDrawable(foodDrawable);

Вам просто нужно создать список идентификаторов, которые можно рисовать, чтобы знать, какие из них использовать.

...