2012-03-03 7 views
1

アイコンと名前を持つ行ごとにリストビューを生成する必要があります。コードは次のようになります。次のようにリストビューでは、アンドロイドの行ではなくオブジェクトが表示されます

public class MyListActivity extends ListActivity { 
... 
... 

    ArrayList<StringBuilder> categories = new ArrayList<StringBuilder>(); 
    categories.add(new StringBuilder("xyaq")); 
    categories.add(new StringBuilder("wers")); 
    categories.add(new StringBuilder("test2")); 
    categories.add(new StringBuilder("asfda")); 
    categories.add(new StringBuilder("hoyio")); 

    ArrayList<RelativeLayout> departments = new ArrayList<RelativeLayout>(); 

    for (StringBuilder category : categories) { 
     RelativeLayout categoryRow = (RelativeLayout) mInflater.inflate(
       R.layout.products_row, null); 

     ImageView tempImage = (ImageView) categoryRow.getChildAt(0); 
     tempImage.setBackgroundResource(R.drawable.ic_launcher); 
     TextView tempTextView = (TextView) categoryRow.getChildAt(1); 
     tempTextView.setText(category); 
     departments.add(categoryRow); 
    } 
    ArrayAdapter<RelativeLayout> departmentAdaptor = new ArrayAdapter<RelativeLayout>(
      this, android.R.layout.simple_list_item_1, departments); 

    setListAdapter(departmentAdaptor); 
} 

とproducts_row.xmlは次のとおりです。

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

<ImageView 
    android:id="@+id/deptIcon" 
    android:layout_width="64dp" 
    android:layout_height="64dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:background="#FFFFFF" 
    android:clickable="false" 
    android:contentDescription="@string/hello" 
    android:scaleType="fitXY" /> 

<TextView 
    android:id="@+id/deptName" 
    android:layout_width="fill_parent" 
    android:layout_height="54dp" 
    android:layout_alignLeft="@id/deptIcon" 
    android:layout_marginLeft="80dp" 
    android:gravity="left|center" 
    android:textSize="25dp" 
    android:textStyle="bold" /> 

</RelativeLayout> 

私が直面しています問題は、私がイメージして対応するテキストでの行を見ることができないです。代わりに、相対レイアウトオブジェクトのリストを表示します。

答えて

1

これは、達成しようとしていることを行う正しい方法ではありません。 カスタムアダプターを作成する必要があります。

は、このリンクを参照してください私の答えをチェック: Listview with Image,Text and Checkbox

あり、全体のアクティビティコードがあるとArrayAdapteを拡張innerclassのMyAdapterが含まれています。

+0

ありがとうございます@Pankaj。カスタムアダプターを作成することがトリックでした!しかし、なぜ私の実装方法(リスト行のarraylistをarrayadapterに渡す)がうまくいかないのか不思議です。 :-) –

+0

ArrayListからRelationを自動的にリストビューに割り当てません。コンポーネントに手動でデータを割り当てる必要があります。リストビューの動作は – Pankaj

+0

Oh..okです。とった。説明をありがとうございます。 –

関連する問題