如何在以下活动中调用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不一定需要布局文件;但我已经习惯了(笑)。我有一个需要运行setContentView()的MenuDrawer ...我可以选择任何选项。
谢谢!
答案 0 :(得分:1)
您可以像调用任何其他Activity一样调用setContentView()
,但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);
...
答案 1 :(得分:0)
按照MenuDrawer在ListActivitySample发布的示例进行操作。似乎关键是覆盖ListActivity代表您调用的setContentView
并将其转发到菜单抽屉中。
以下似乎是关键:
@Override
public void setContentView(int layoutResID) {
// This override is only needed when using MENU_DRAG_CONTENT.
mMenuDrawer.setContentView(layoutResID);
onContentChanged();
}
答案 2 :(得分:0)
我调用了Activity的getListView():
mMenuDrawer.setContentView(getListView());
为什么我总是在发布到StackOverflow之后弄清楚???