2012-03-23 3 views
0

저는 Android 프로그래밍을 처음 사용합니다. ListView를 만들고 간단한 어댑터를 사용하여 각 목록 항목의 아이콘을 설정하려고했습니다. viewbinder 익숙하지 않은, 그래서 어댑터 클래스의 getview 메서드에서 super.setImageView 및 super.setTextView 메서드를 호출하는 시도했지만 아이콘을 텍스트가 표시됩니다. 이건 내 활동 클래스는목록보기에서 아이콘을 설정할 수 없습니다.

<RelativeLayout android:layout_width="match_parent" 
    android:id="@+id/relativeLayout1" 
    android:layout_height="fill_parent"> 
     <TextView android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/folder_label" 
      style="@style/textViewStyle" 
      android:id="@+id/textView" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:paddingTop="20dp" 
      android:paddingBottom="20dp"></TextView> 
     <ImageView android:id="@+id/avatar" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginRight="6dip" 
      android:src="@drawable/icon"></ImageView> 
     <ListView android:layout_height="wrap_content" 
      style="@style/listViewStyle" 
      android:listSelector="@drawable/list_selector" 
      android:layout_width="wrap_content" 
      android:id="@+id/listView" 
      android:layout_marginTop="65dp"` 

입니다

ListView lView = (ListView) findViewById(R.id.listView); 
    TextView iView = (TextView) findViewById(R.id.textView); 
    optionsArray = getResources().getStringArray(R.array.optionsArray); 

    msgMenu = new ArrayList<HashMap<String, Integer>>(); 
    HashMap<String, Integer> msgOptionsMap = new HashMap<String, Integer>(); 
    for (int i = 0; i < 7; i++) { 

     msgOptionsMap.put(optionsArray[i], (Integer) mThumbIds[i]); 

    } 
    msgMenu.add(msgOptionsMap); 

    lView.setAdapter(new OptionsAdapter(context, msgMenu, 
      android.R.layout.simple_list_item_1, optionsArray, mThumbIds)); 

리스트 뷰에서이 layour을 사용하는

public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView view = new ImageView(context); 
     TextView tv = new TextView(context); 
     if (convertView == null) { 
      // view.setImageResource(mThumbIds[position]); 
      super.setViewImage(view, mThumbIds[position]); 
      super.setViewText(tv, msgOptions[position]); 
+0

[ListView Tutorials] (htt p : //www.technotalkative.com/category/android/listview/) PS : 아래에서 위로 시작하십시오. –

+0

및 convertView가 null이 아닌 경우는 어떻게됩니까? – njzk2

답변

0

어댑터 내부의 getView 방법 :

내 XML입니다 : android.R.layout.simple_list_item_1

이 layour에 의해 정의된다 SO

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/text1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView" /> 

, 당신은 당신의 getView에서 사용할 수 있습니다 대신

TextView tv = (textView) view.findViewById(android.R.id.text1); 

:

TextView tv = new TextView(context); 

당신은 defintely 간단한 것들로 시작해야을, 여기에 훌륭한 자습서가 있습니다. http://www.vogella.de/articles/AndroidListView/article.html

관련 문제