0

如何在以下活动中调用 setContentView()?

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class MyListActivity extends ListActivity {
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        String[] values = new String[] { 
            "Android", 
            "iPhone", 
            "WindowsMobile",
            "Blackberry", 
            "WebOS", 
            "Ubuntu", 
            "Windows7", 
            "Max OS X",
            "Linux", 
            "OS/2" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
    }
}

如您所见,ListActivities 不一定需要布局文件;但我已经习惯了(咧嘴笑)。我有一个 MenuDrawer 需要运行 setContentView()...我对任何选项持开放态度。

谢谢!

4

3 回答 3

1

您可以setContentView()像使用任何其他 Activity 一样调用,但 ListActivities 有一个额外要求:布局必须具有具有此属性的 ListView:android:id="@android:id/list"

public class MyListActivity extends ListActivity {
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_myListActivity);
        ...
于 2013-02-07T19:18:56.493 回答
0

遵循 MenuDrawer 在此处ListActivitySample发布的示例。似乎关键是覆盖setContentViewListActivity 代表您调用的内容并将其转发到您的菜单抽屉中。

以下似乎是关键:

@Override
public void setContentView(int layoutResID) {
    // This override is only needed when using MENU_DRAG_CONTENT.
    mMenuDrawer.setContentView(layoutResID);
    onContentChanged();
}
于 2013-02-07T19:24:00.167 回答
0

我调用了 Activity 的 getListView():

mMenuDrawer.setContentView(getListView());

为什么我总是在我发布到 StackOverflow 之后弄清楚事情???

于 2013-02-07T19:37:39.450 回答