0

一日中検索してテストしてきましたが、この問題の解決策は見つかりませんでした。ListView があり、その中にいくつかのビューを表示したいと考えています。しかし、ビューを追加するたびに、ビュー自体ではなく、listItems のクラスまたは ID のみが表示されます。お気に入り:

android.widget.Button{40f090e0VFED.. C. ..........l. 0,0-0,0}

私は何を間違っていますか!? 特定のタグを設定する必要がありますか!? これは、私のリストビューがxmlファイルに実装されている方法です

<ListView
    android:id="@+id/listView1"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:animateLayoutChanges="true"
    android:clipChildren="true"
    android:clipToPadding="true"
    android:dividerHeight="1dp"
    android:focusableInTouchMode="true"
    android:headerDividersEnabled="true"
    android:scrollbarStyle="insideInset"
    android:scrollbars="vertical|horizontal"
    android:splitMotionEvents="true" >

これは、アクティビティの Java コードです。

Button[] test = new Button[3];
test[0] = new Button((Activity) _mycontext);
test[1] = new Button((Activity) _mycontext);
test[2] = new Button((Activity) _mycontext);
test[0].setText("Test-Button 1");
test[1].setText("Test-Button 2");
test[2].setText("Test-Button 3");
_dt_columns.setAdapter(new ArrayAdapter<View>((Activity) _mycontext, android.R.layout.simple_list_item_1, test));
_dt_columns.notifyAll();

また、「extends ListActivity」と Inflater を使用してすべての方法を実行しましたが、すべて表示されますが、ビュー自体ではなく、常にそのテキストだけが表示されます。

4

1 に答える 1

1

ArrayAdapterは ListView に 1 つの TextView のみを設定します。各項目には複雑なレイアウトがある場合がありますが、それらの唯一の違いは TextView 値です。

View要素をリスト項目として渡し、それらのアダプター呼び出しでtoStringメソッドを呼び出して、このTextViewにデータを入力します。これが、この「奇妙な」値を取得する場所です。

android.R.layout.simple_list_item_1 を使用する代わりに、目的の構造を持つ単一のリスト アイテムに対して独自の xml レイアウト リソースを作成します。そして、このようにアダプタを作成します

ArrayAdapter<YourObject> adapter = new ArrayAdapter<YourObject>(this, R.layout.listitem, R.id.textview_inside_listitem, YourObject[])

ここで、YourObject は、リストに表示する単一アイテムのデータと toString メソッドの戻り値を保持するために作成したクラスです。

于 2013-05-26T01:33:02.050 に答える