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

此示例使用 values 数组中的值填充 TextView R.id.phone_number。但是我有另一个 textView R.id.date_time ,我想用 subvalues 数组中的值填充它。

我应该如何修改我的代码以实现我的目标?

4

2 回答 2

1

您可以将两个 Array 组合成 aList<Map<String, String>>并使用SimpleAdapter来显示这两个值。或者您可以创建一个自定义适配器,该适配器接受您的两个数组并适当地显示它们。

我建议使用自定义适配器,因为 SimpleAdapters 比自定义代码慢。如果您从未创建过自定义适配器,那么有一些由主要 Android 开发人员专门针对此主题进行的 Google I/O 演示,例如Turbo-Charge Your UI

于 2013-02-24T22:00:45.877 回答
1

我应该如何修改我的代码以实现我的目标?

您始终可以使用Cursor Joiner Witch 允许将多个列表/光标加入到单个光标中。当您创建光标适配器类(允许自定义布局)时,您将作为适配器分配给您的 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 回答