2010-10-24 3 views
1

Я очень новичок в Android delelopment, поиске и чтении различных руководств и использовании разных частей кода со всего Интернета, пытаясь понять это, когда я иду. Простите меня, если мое объяснение не слишком велико.Android: Как назначить каждому элементу списка ListView отдельный значок?

В настоящее время у меня есть список, состоящий из 4 элементов списка, то, что я хотел бы сделать, это назначить другой значок каждому из этих элементов списка, однако я не знаю, как это сделать, и я не знаю что искать.

Вот код:

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<ListView android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/mainListView"> 
</ListView> 

</LinearLayout> 

row.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rowTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="16sp" > 
</TextView> 

FirstList.java

import java.util.ArrayList; 
import java.util.Arrays; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class FirstList extends Activity { 

private ListView mainListView; 
private ArrayAdapter<String> myListAdapter; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mainListView = (ListView) findViewById(R.id.mainListView); 

    String[] myList = new String[] {"List 1", "List 2", "List 3", "List 4"}; 

    ArrayList<String> listObjects = new ArrayList<String>(); 
    listObjects.addAll(Arrays.asList(myList)); 

    myListAdapter = new ArrayAdapter<String>(this, R.layout.row, listObjects); 

    mainListView.setAdapter(myListAdapter); 

    } 
} 

Я оценил бы любой входной сигнал у вас есть , включая любые ресурсы, которые вы можете рекомендовать или критиковать мой код, как новичок, я бы предпочел не забирать вредные привычки с самого начала!

Спасибо.

ответ

0

Одним из решений является использование SimpleAdapter. SimpleAdapter позволяет сопоставлять статические данные с комплексными представлениями. Вы можете найти несколько примеров с быстрым поиском, например a tutorial.

+0

Это дало мне именно то, что мне нужно, чтобы продолжить поисковую перспективу, и я думаю, что я могу ее взломать. Спасибо. – mattFllr

0

Вам нужно будет добавить ImageView в файл row.xml (изображения будут отображаться в ImageView) - это не должно быть слишком сложно.

Вам также потребуется создать настраиваемый ArrayAdapter (расширение класса ArrayAdapter) и переопределить метод getView - довольно общая задача, поэтому вам следует легко найти несколько примеров того, как это сделать. Вы также можете посмотреть исходный класс ArrayAdapter (ArrayAdapter), чтобы узнать, как реализован getView. Наконец, вы должны добавить код загрузки изображения в метод getView.

+0

Спасибо, не могли бы вы уточнить, пожалуйста? Мои поисковые запросы приходят с теми же переработанными интернет-страницами для разных сайтов. – mattFllr

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