2013-10-27 3 views
4

Я использую представление списка следующегоAndroid Пользовательского макет для ListView

String[] Shows = new String[] { "Dexter", "Breaking Bad", "The Big Bang Theory", "Leverage"}; 
ListView tv_show_list = (ListView) view_tvshowAddNew.findViewById(R.id.lv_tv_show_list); 

ArrayAdapter<String> showNameAdapter = new ArrayAdapter<String>(getActivity(), R.layout.tv_show_each_show_name, Shows); 

tv_show_list.setAdapter(showNameAdapter); 

Теперь мой tv_show_each_show_name XML как ниже

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="58dp" 
    android:background="@drawable/ic_launcher" 

    > 
</TextView> 

То, что я хочу сделать сейчас, чтобы каждый показать имя, связанное с изображение и, возможно, положите это на карту, например: -

Map mMap = new HashMap(); 
mMap.put("Dexter", "imageDexter.png"); 
mMap.put("Breaking Bad", "imageDexter.png"); 

и при загрузке просмотра списка я покажу t он назовет эту карту и установит связанный фон изображения, взяв имя изображения с этой карты и загрузив его из выпадающей папки.

Как это сделать?

Hopping как макет следующего

enter image description here

+0

Я считаю, что это весьма уместно: http://stackoverflow.com/questions/8166497/custom-adapter-for-list-view – rynojvr

ответ

10

Вот tutorial для пользовательского Listview

Теперь для установки различных изображений по каждому пункту, внутри GetView() метод адаптера

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    textView.setText(values[position]); 
    // Change the icon for Windows and iPhone 
    String s = values[position]; 
    imageView.setImageResource(images[position]); 
    return rowView; 
    } 

Где ваш массив изображение будет выглядеть следующим образом

int[] images={R.drawable.green_button,R.drawable.ic_launcher,R.drawable.shape,R.drawable.splash}; 

Также убедитесь, что длина вашего массива «изображений» должна быть такой же, как и ваши элементы в списке.

+2

, а также должен использовать шаблон держателя вида. – Raghunandan

+1

также собирался порекомендовать vogella, это очень eay, чтобы следовать оттуда – Manny265

+0

Очень полезная обучающая ссылка для новичков. Огромное спасибо. :) –

1

Посмотрите на этой Adding 2 buttons to the text view Вы в основном нужен пользовательский адаптер для списка и нужно переопределить метод GetView его, где вы можете указать пользовательский интерфейс элемента в раскладка.

Для кода, который вы отправили, вместо использования экземпляра ArrayAdapter, создайте свой собственный адаптер, полученный из ArrayAdapter . YourData должен быть классом, содержащим ссылку на изображение элемента и элемента.

Теперь переопределите метод getView в пользовательском классе адаптера. Метод используется для заполнения пользовательского интерфейса для элемента с помощью позиции аргумента из

Посмотреть GetView (интермедиат положение, Вид convertView, ViewGroup родитель)

Вы можете получить этот элемент с помощью ArrayAdapter.getItem

для более подробной информации обратитесь к ссылке выше и http://developer.android.com/reference/android/widget/ArrayAdapter.html

+0

Я новичок в андроид развития. Мне нужно больше деталей. вы можете уточнить свой ответ? спасибо – LynAs

0

взгляду на этом примере here он показывает, как загружать изображения в ListView в Android, вам нужно расширяет BaseAdapter для создания пользовательского адаптера

Смежные вопросы