2012-05-22 50 views
1

我必須創建一個listview,其中單行有4個textview。 我的問題是我不明白我該如何使用適配器,所以有人可以幫我使用適配器及其實現?listview with 4 textview

這是我的佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="center" 
android:orientation="vertical" > 




<TextView 
    android:id="@+id/textView1" 
    android:layout_width="192dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_marginBottom="20dp" 
    android:text="Grazie per aver parcheggiato da noi!" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<ListView 
    android:id="@+id/mylist" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
</ListView> 


<Button 
    android:id="@+id/btnEsci" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="Torna a scelta" /> 

</LinearLayout> 

這是單行(single_feed)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<!-- TEXT OF FEED --> 

<TextView 
     android:id="@+id/txtId" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Numero macchina: #" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/txtTarga" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Targa: #" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/txtOra" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Ora ingresso: #" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 


    <TextView 
     android:id="@+id/txtCosto" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Prezzo uscita: #" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:lines="1" 
     /> 

這是我的適配器:

public class MioAdapter extends ArrayAdapter<String> { 
     private final Context context; 
     private final String[] values; 

     public MioAdapter(Context context, String[] values) { 
      super(context, R.layout.single_feed, values); 
      this.context = context; 
      this.values = values; 
     } 

     @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.single_feed, parent, false); 
      TextView textView = (TextView) rowView.findViewById(R.id.label); 
      textView.setText(values[position]); 
      // Change the icon for Windows and iPhone 


      return rowView; 
     } 

最後,這是我的活動:

public class checkout extends Activity{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     //apro la view 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.checkout); 

     //gestsco l'adapter per creare la lista 
     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 
      String[] values = new String[] { "Android", "iPhone", "WindowsMobile", 
        "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
        "Linux", "OS/2" }; 
      MioAdapter adapter = new MioAdapter(this, values); 
      setListAdapter(adapter); 
}; 

有人可以幫我使用適配器嗎? 感謝所有幫助我在這個簡單的麻煩:)

+0

提示:每個listview應該有'height'作爲'fill_parent' – amp

+0

你想要4列(TextViews彼此相鄰)嗎? –

回答

2

See this Custom listView

並且在連續兩個textviews,你只是添加四個TextView的如此行佈局添加file.And添加在TextView的android:maxLines="1"單行textview。

1

對於單行(single_feed):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" > 

還留着layout_width固定所有文本的意見,讓他們可以適應單行。

1
  1. 在single_feed.xml佈局中添加4個文字視圖。這將是你的listitem的佈局
  2. 找到所有的文字視圖在獲得MioAdapter的ID
  3. 通過以int爲實例變量在適配器中維護索引。在getView
0

首先

  • 將文本分配有什麼地方不對勁。如果你想要一個ListView,你需要一個元素列表(一個元素,一行)。

    所以,如果你想要每行多個TextView,你將需要每個元素多個值。所以你需要一個數組數組。

    您也可以嘗試SimpleCursorAdapter。爲您打造一個MatrixCursor與您的數據:MatrixCursor mc = new MatrixCursor(your_column_names);和添加元素(每行一個):mc.addRow(row_values);(其中your_column_namesrow_valuesString[]型)

    然後你使用一個SimpleCursorAdapter,其中String[] from = your_column_valuesint[] to = your_TextView_ids(從single_feed.xml IDS )

  • +0

    不,我不需要一個數組數組,因爲我的信息是有序的,所以我知道在每個文本視圖中會看到什麼 – Lorenzo