Пользовательский ListView?

1

У меня есть код, созданный Федором, его можно найти "здесь".

Первое изображение - это то, что у меня есть,

а второе изображение - это то, что я хочу выполнить.

Может ли кто-нибудь мне поучаствовать. Я пытался изо всех сил пытаться решить эту проблему.  Пожалуйста, помогите мне, спасибо заранее!

Изображение 174551

Изображение 174551

Теги:
lazy-evaluation
load
listview

3 ответа

0
Лучший ответ

Вам просто нужно изменить макет элемента списка (в item.xml), чтобы иметь другой ImageView.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content">
    <ImageView android:id="@+id/image1" android:layout_width="50dip" 
        android:layout_height="50dip" android:src="@drawable/stub" 
        android:scaleType="centerCrop" /> 
    <ImageView android:id="@+id/image2" android:layout_width="50dip" 
        android:layout_height="50dip" android:src="@drawable/stub" 
        android:scaleType="centerCrop" /> 
    <TextView android:id="@+id/text" android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:layout_weight="1" 
        android:layout_gravity="left|center_vertical" android:textSize="20dip" 
        android:layout_marginLeft="10dip" /> 
</LinearLayout>

и модифицируйте метод LazyAdapter getView(), чтобы добавить поддержку второго ImageView.

  • 0
    Я попытался поиграться с LazyAdapter.class, но что мне нужно изменить, чтобы решить мою проблему?
1

Вот пример чего-то подобного. Вам необходимо создать пользовательский адаптер для вашего ListView.

http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

Вероятно, вы можете использовать большую часть этого примера. Просто измените row.xml, чтобы создать желаемый макет и getView() в адаптере.

0

Учебник по созданию пользовательского ListView можно найти здесь: http://justcallmebrian.com/?p=139

Просто нужно изменить XML-макет для каждого элемента, чтобы иметь 2 ImageViews, как сказал Робби. Затем в вашем getView вашего адаптера (LazyAdapter, если вы следовали за ответами других людей) вы должны иметь что-то вроде этого:

ImageView image1 = (ImageView) findViewById (R.id.image1); image1.setResource(R.drawable.icon1); ImageView image2 = (ImageView) findViewById (R.id.image2); image2.setResource(R.drawable.icon2); TextView text = (TextView) findViewById (R.id.text); text.setText( "У меня есть 2 изображения" );

В учебнике, который я вставлял ранее, изображен способ сделать генерацию динамического списка (т.е. не иметь ресурса R.drawable.icon1/2 и не иметь текста для ваших текстовых изображений). Что-то вроде этого может работать (если у вас есть класс Model, который будет содержать все 3 части информации):

int resid1 = context.getResources().getIdentifier("com.domain.sub:drawable/" + myList.get(position).getImage1Name, null, null);
ImageView image1 = (ImageView) findViewById(R.id.image1);
image1.setResource(resid1);
int resid2 = context.getResources().getIdentifier("com.domain.sub:drawable/" + myList.get(position).getImage2Name, null, null);
ImageView image2 = (ImageView) findViewById(R.id.image2);
image2.setResource(resid2);
TextView text = (TextView)findViewById(R.id.text);
text.setText(myList.get(position).getText());

Конечно, вышеприведенный фрагмент предполагает, что у вас есть ArrayList, называемый myList, который также использует getters для получения имен изображений и отображаемого текста.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню