Как отобразить список изображений в ListView в Android?

67
задан giusti 12 October 2019 в 07:13
поделиться

3 ответа

Я запустил бы с чего-то вроде этого (и если бы существует что-то не так с моим кодом, я, конечно, ценил бы любой комментарий):

public class ItemsList extends ListActivity {

private ItemsAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.items_list);

    this.adapter = new ItemsAdapter(this, R.layout.items_list_item, ItemManager.getLoadedItems());
    setListAdapter(this.adapter);
}

private class ItemsAdapter extends ArrayAdapter<Item> {

    private Item[] items;

    public ItemsAdapter(Context context, int textViewResourceId, Item[] 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.items_list_item, null);
        }

        Item it = items[position];
        if (it != null) {
            ImageView iv = (ImageView) v.findViewById(R.id.list_item_image);
            if (iv != null) {
                iv.setImageDrawable(it.getImage());
            }
        }

        return v;
    }
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    this.adapter.getItem(position).click(this.getApplicationContext());
}
}

, Например, расширяющийся ArrayAdapter с собственным типом Объектов (содержащий информацию о Ваших изображениях) и переопределенный getView() метод, который готовит представление к объектам в рамках списка. Существует также метод add() на ArrayAdapter для добавления объектов до конца списка.

R.layout.items_list простой макет с ListView

R.layout.items_list_item, расположение, представляющее один объект в списке

47
ответ дан Praveenkumar 24 November 2019 в 14:44
поделиться

Чтобы получить данные из базы данных, вы должны использовать SimpleCursorAdapter .

Я думаю, вы можете напрямую связать SimpleCursorAdapter с ListView - если нет, вы можете создать собственный класс адаптера, который расширяет SimpleCursorAdapter с помощью пользовательского ViewBinder , который переопределяет setViewValue .

Посмотрите на Руководство по созданию блокнота , чтобы узнать, как использовать SimpleCursorAdapter .

1
ответ дан 24 November 2019 в 14:44
поделиться

Имя файла должно соответствовать идентификатору макета, который в этом примере: items_list_item.xml в папке макета вашего приложения

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >  

<ImageView android:id="@+id/R.id.list_item_image"
  android:layout_width="100dip"
  android:layout_height="wrap_content" />  
</LinearLayout>
1
ответ дан 24 November 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: