2012-11-02 79 views
1

我有一個問題。imageview listview

我做了一個數據庫(數組)與不同的像,名稱,ID,類型。 讀取的名字我也做了字符串(名稱是一個字符串:

public static String[] getAllPokemonsInStrings() { 
    ArrayList<String> items = new ArrayList<String>(); 
    for(Pokemon p : Pokemon.values()){ 
     if(p.getName() != null){ 
      items.add(p.getName()); 
     } 
    } 
    return items.toArray(new String[]{}); 
} 

下面是一個創建位是:

public class Test3 extends ListActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label,  Types.getAllPokemonsInStrings())); 

    } 
} 

而且每行XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:id="@+id/LinearLayout"> 

    <ImageView 
     android:id="@+id/sprite" 
     android:layout_width="96dp" 
     android:layout_height="96dp" 
     android:contentDescription="@string/sprite" 
     android:src="@drawable/p002" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical"> 

     <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/label" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="10dip" 
      android:textSize="16dip" 
      android:textStyle="bold" /> 

    </LinearLayout> 
</LinearLayout> 

有沒有辦法改變imageresource(這是一個int)做每行,從數組中加載它?

+0

寵物小精靈的複數是沒有s的寵物小精靈:P – Jasper

+0

呃,我給列表命名爲'pokemons',使它與當前的'pokemon'對象不同。沒有傷害,沒有犯規:P – Geobits

回答

2

是的,這是可能的。您需要創建自己的適配器類,並覆蓋getView()。我建議你閱讀這個tutorial關於如何創建一個自定義適配器。

+0

謝謝,我會研究它。我希望我能把它運用起來:P – DjeDjeDiego