1

我必须创建一个列表视图,其中单行有 4 个文本视图。我的问题是我不明白如何使用适配器,所以有人可以帮助我使用适配器及其实现吗?

这是我的布局

<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);
};

有人可以帮助我使用适配器吗?感谢所有可以帮助我解决这个简单问题的人:)

4

4 回答 4

2

查看此自定义列表视图

并且行中有两个文本视图,您只需添加四个文本视图,因此添加行布局文件。并在文本视图中添加单行文本视图android:maxLines="1"

于 2012-05-22T11:08:32.077 回答
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 固定,以便它们适合单行。

于 2012-05-22T11:11:27.130 回答
1
  1. 在 single_feed.xml 布局中添加 4 个 Textview。这将是您的列表项的布局
  2. 在 MioAdapter 的 getview 中找到所有 textview 的 id
  3. 通过将 int 作为实例变量来维护适配器中的索引。
  4. 在 getView 中分配文本
于 2012-05-22T11:13:48.827 回答
0

首先,某处有问题。如果你想要一个 ListView,你需要一个元素列表(一个元素,一行)。

因此,如果您希望每行有多个 TextView,则每个元素都需要多个值。因此,例如,您将需要一个数组数组。

你也可以试试 SimpleCursorAdapter。您使用您的数据构建一个 MatrixCursor:MatrixCursor mc = new MatrixCursor(your_column_names);并添加元素(每行一个):(mc.addRow(row_values); 其中your_column_namesrow_values的类型String[]

然后使用 SimpleCursorAdapter,其中String[] from = your_column_valuesint[] to = your_TextView_ids(来自 single_feed.xml 的 ID)

于 2012-05-22T11:34:26.323 回答