Помещение LinearLayout в ListView (Android) - PullRequest
0 голосов
/ 21 марта 2011

Я пытаюсь программно поместить LinearLayout в ListView, и у меня возникли некоторые проблемы.Я хочу сделать это, чтобы я мог вставлять горизонтальные столбцы внутри каждой ячейки ListView.Вот соответствующий фрагмент кода:

    LinearLayout listArray[] = new LinearLayout[routeTable.GetTableHeight()];
    for (int i = 0; i < routeTable.GetTableHeight(); i++) {
        listArray[i] = new LinearLayout(this);
        TextView view = new TextView(this);
        view.setText(strList[i]);
        listArray[i].addView(view);
    }

    // Create list
    ListView list = new ListView(this);
    list.setAdapter(new ArrayAdapter<LinearLayout>(this,
            android.R.layout.simple_list_item_1, listArray));
    layout.addView(list, new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.FILL_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));

Компилируется, но отображаемый результирующий список не отображает ни одной из строк в strList [].Вместо этого отображаемые элементы списка выглядят примерно так: «android.widget.LinearLayout@47b63c0».Кто-нибудь знает, как я мог это исправить, чтобы отображались соответствующие TextViews, которые находятся внутри listArray []?

1 Ответ

1 голос
/ 22 марта 2011

ArrayAdapter просто вызывает метод .toString () для каждого объекта в списке и отображает результирующую строку в каждом элементе списка. В вашем случае .toString () вызывается для LinearLayout, это то, что вы видите как элемент списка. Также непонятно, каковы элементы routeTable.

Вам следует создать подкласс BaseAdapter, чтобы вы могли самостоятельно создавать необходимые представления для каждого элемента списка.

...