2012-06-14 75 views
0

我一直在閱讀有關多列列表視圖的內容。他們似乎是我需要的,但不能信息有關如何填充他們不使用哈希映射。我看到的所有示例都使用散列映射來構建listview數據適配器,但是當隱含大量數據時,這太重了。無論如何填充沒有哈希列表的列表視圖?在沒有散列圖的情況下填充多列列表視圖

所有的例子我見過使用這樣的事情: http://saigeethamn.blogspot.com.es/2010/04/custom-listview-android-developer.html

+0

任何示例?我今天沒有閱讀關於多列列表視圖。 – pawelzieba

+0

你在哪裏保存數據?在數據庫或其他東西? – pawelzieba

+0

爲什麼不只是一個自定義'Object'的ArrayList?還是「光標」? –

回答

0

是的,它是可能的。請檢查代碼。

public class List_view_ArrayAdapter extends ArrayAdapter<String> { 
    private Context context; 
    private String[] name; 
    private String[] address; 
    private String[] rating; 
    private TextView nameTextView; 
    private TextView addressTextView; 
    private ImageView lisiconImageView; 
    private AppManagers appManagers; 

    public List_view_ArrayAdapter(Context context, String[] name, 
      String[] address, String[] rating) { 
     super(context, R.layout.list_layout, name); 
     this.context = context; 
     this.name = name; 
     this.address = address; 
     this.rating = rating; 
     appManagers = new AppManagers(); 

    } 

    @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.list_layout, parent, false); 
     nameTextView = (TextView) rowView.findViewById(R.id.nameTextView); 
     addressTextView = (TextView) rowView.findViewById(R.id.addressTextView); 

     lisiconImageView = (ImageView) rowView 
       .findViewById(R.id.listiconImageView); 
     nameTextView.setText(name[position]); 
     addressTextView.setText(address[position]); 

     lisiconImageView.setImageDrawable(appManagers 
       .ImageOperations(rating[position])); 
     // imageView.setImageResource(imageid[position]); 
     return rowView; 
    } 

} 

下面是該行 「R.layout.list_layout」

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

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" android:layout_marginBottom="5dp" android:layout_marginTop="5dp"> 

     <ImageView 
      android:id="@+id/listiconImageView" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" android:layout_marginLeft="5dp" android:gravity="center_vertical" android:layout_marginBottom="5dp" android:layout_marginTop="5dp"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Name : " 
       android:textColor="#2a170e" /> 

      <TextView 
       android:id="@+id/nameTextView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="TextView" 
       android:textColor="#2a170e" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Address : " 
       android:textColor="#2a170e" /> 

      <TextView 
       android:id="@+id/addressTextView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="TextView" 
       android:textColor="#2a170e" /> 
     </LinearLayout> 

    </LinearLayout> 

</LinearLayout> 

Finaly您從您的主要活動稱之爲list_layout。

new List_view_ArrayAdapter arrayAdapter= new List_view_ArrayAdapter(context, appManagers.getNameArray(cafeandbarsList), name, address, rating); 

listView.setAdapter(arrayAdapter); 

我認爲這對你有幫助。

謝謝

+0

customAdapter似乎是這裏最好的選擇。 – Notbad