0

我在使用根元素 ListView 的活动时遇到问题。我已经按照 本教程将项目加载到列表视图中并且所有工作。但是我尝试更改列表视图的 id,现在,当活动加载时,我收到了这个问题:

您的内容必须有一个 ID 属性为“android.R.id.list”的 ListView

我尝试将 id 更改为“list”,但我遇到了同样的问题。我在编译时没有问题,但在运行时。这是我加载列表视图时的活动代码。

public class StartActivity extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

    //Section inflating
    adapter.addSection(getString(R.string.equationmenu), new ArrayAdapter<Object>(this,
            android.R.layout.simple_list_item_1, new String[] {getString(R.string.eq1title), getString(R.string.eq2title), getString(R.string.eqfractitle)}));

    setListAdapter(adapter);
}

SectionedAdapter adapter = new SectionedAdapter() {
    protected View getHeaderView(String caption, int index,
                                 View convertView, ViewGroup parent) {
        TextView result = (TextView) convertView;

        if (convertView == null) {
            result = (TextView) getLayoutInflater().inflate(
                    R.layout.header, null);
        }

        result.setText(caption);

        return (result);
    }
};
}

这是活动的 xml:

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="true" />

任何人都可以帮助我吗?:)

4

1 回答 1

0

如果你从 ListActivity 扩展,你必须让你的 xml 中的 ListView 的 id

(android:id="@android:id/list")

如果您想更改 Id 或在 Activity 中使用多个 ListView ,则必须从 Activity 扩展并自己膨胀 ListView ..

例如如下:

ListView list1 = (ListView) findViewById(R.id.myList1); list1.setAdapter(...);

ListView list2 = (ListView) findViewById(R.id.myList2); list2.setAdapter(...);

于 2013-05-19T14:48:59.363 回答