1

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

See this Custom listView

And there is two textviews in row and you just add four textview so add in row layout file.And add In textview android:maxLines="1" for single line textview.

于 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 を固定して、1 行に収まるようにします。

于 2012-05-22T11:11:27.130 に答える
1
  1. single_feed.xml レイアウトに 4 つの Textview を追加します。それはあなたのリストアイテムのレイアウトになります
  2. MioAdapter の getview ですべてのテキストビューの ID を見つける
  3. インスタンス変数として int を取得することにより、アダプターでインデックスを維持します。
  4. getView でテキストを割り当てる
于 2012-05-22T11:13:48.827 に答える
0

まずどこかがおかしい。ListView が必要な場合は、要素のリスト (1 つの要素、1 つの行) が必要です。

したがって、行ごとに複数の TextView が必要な場合は、要素ごとに複数の値が必要になります。たとえば、配列の配列が必要になります。

SimpleCursorAdapter を試すこともできます。データを使用して MatrixCursor を作成します:MatrixCursor mc = new MatrixCursor(your_column_names);要素を追加します (行ごとに 1 つ): 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 に答える