1

たとえば、次のようなコードがあります。

    String[] values = new String[] { "Text1", "Text2", "Text3",
            "Text4", "Text5", "Text6", "Text7", "Text8",
            "Text9", "Text10" };
    String[] subvalues = new String[] {"subtext1", "subtext2", "subtext3", "subtext4", 
            "subtext5", "subtext6", "subtext7", "subtext8", "subtext9", "subtext10"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this,
            R.layout.rawlayout,
            R.id.phone_number,
            values);
    setListAdapter(adapter);

このサンプルでは、​​TextView R.id.phone_number に values 配列の値を入力します。ただし、別の textView R.id.date_time があり、subvalues 配列の値を入力したいと考えています。

目的を達成するためにコードをどのように変更すればよいですか?

4

2 に答える 2

1

目的を達成するためにコードをどのように変更する必要がありますか?

いつでもカーソルジョイナーを使用できます。Witchを使用すると、複数のリスト/カーソルを1つのカーソルに結合できます。カーソルアダプタクラス(カスタムレイアウトを許可)を作成する場合は、listViewにアダプタとして割り当てます。

CursorJoiner joiner = new CursorJoiner(cursor1, projection1, cursor2, projection2);


for (CursorJoiner.Result joinerResult : joiner) {
    switch (joinerResult) {

    case LEFT: // handle case where a row in cursorA is unique


        Log.d(tag, "left");

        break;
    case RIGHT: // handle case where a row in cursorB is unique

        Log.d(tag, "right");
        break;
    case BOTH: // handle case where a row with the same key is in
           // both // cursors
        Log.d(tag, "both");
        break;
    }

MatrixCursorを使用することもできます

于 2013-02-24T22:05:08.577 に答える
1

2 つの配列を 1 つに結合し、 SimpleAdapterList<Map<String, String>>を使用して両方の値を表示することができます。または、両方の配列を取得して適切に表示するカスタム アダプターを作成することもできます。

SimpleAdapter はカスタマイズされたコードよりも遅いため、カスタム アダプターを使用することをお勧めします。カスタム アダプターを作成したことがない場合は、UI をターボチャージするなど、このテーマに特化した主要な Android 開発者による Google I/O プレゼンテーションがいくつかあります。

于 2013-02-24T22:00:45.877 に答える