如何在 Android 中使用 setContentView()
How to use setContentView() in Android
我有一个带页脚的列表视图 activity。
我想做的是:
- 创建列表视图。
- 将文本视图添加到列表视图的页脚
- 将页脚应用于列表视图。
下面是activity的onCreate
方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lecture_refer_room);
// making listview...
ListView listView = (ListView) findViewById(R.id.referList);
...
...
String[] from = {"line1", "line2"};
int[] to = {android.R.id.text1, android.R.id.text2};
SimpleAdapter adapter = new SimpleAdapter(this, mapList,
android.R.layout.simple_list_item_2, from, to);
// footer_layout is in refer_footer.xml
View footer = getLayoutInflater().inflate(R.layout.refer_footer, null, false);
LinearLayout ll = (LinearLayout)findViewById(R.id.footer_layout);
TextView tv= new TextView(this);
tv.setText(element.text());
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setVisibility(View.VISIBLE);
ll.addView(tv);
listView.addFooterView(footer);
listView.setAdapter(adapter);
//setContentView(R.layout.activity_lecture_refer_room);
}
}
有两个 .xml 文件。(一个用于包含列表视图的 activity,一个用于页脚)
要添加 textview,我使用 setContentView(R.layout.refer_footer);
并且成功添加了 textview。但是当我 运行 一个应用程序时,它只显示页脚的内容。(不是列表视图)所以我使用 setContentView(R.layout.activvity_lecture_refer_room);
然后应用程序什么都不显示。
我应该怎么做才能显示包含页脚的 lsitview?
这里:
setContentView(R.layout.refer_footer);
无需使用 refer_footer
布局调用 setContentView
,因为 refer_footer
布局适用于您使用 addFooterView
添加的 ListView 页脚:
// inflate foooter layout
View footer = getLayoutInflater().inflate(R.layout.refer_footer,
null, false);
// get footer_layout from footer
LinearLayout ll = (LinearLayout)footer.findViewById(R.id.footer_layout);
// create TextView
TextView tv= new TextView(this);
tv.setText(element.text());
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setVisibility(View.VISIBLE);
// add textview to footer_layout
ll.addView(textview);
// set layout for footer
listView.addFooterView(footer);
我有一个带页脚的列表视图 activity。
我想做的是:
- 创建列表视图。
- 将文本视图添加到列表视图的页脚
- 将页脚应用于列表视图。
下面是activity的onCreate
方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lecture_refer_room);
// making listview...
ListView listView = (ListView) findViewById(R.id.referList);
...
...
String[] from = {"line1", "line2"};
int[] to = {android.R.id.text1, android.R.id.text2};
SimpleAdapter adapter = new SimpleAdapter(this, mapList,
android.R.layout.simple_list_item_2, from, to);
// footer_layout is in refer_footer.xml
View footer = getLayoutInflater().inflate(R.layout.refer_footer, null, false);
LinearLayout ll = (LinearLayout)findViewById(R.id.footer_layout);
TextView tv= new TextView(this);
tv.setText(element.text());
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setVisibility(View.VISIBLE);
ll.addView(tv);
listView.addFooterView(footer);
listView.setAdapter(adapter);
//setContentView(R.layout.activity_lecture_refer_room);
}
}
有两个 .xml 文件。(一个用于包含列表视图的 activity,一个用于页脚)
要添加 textview,我使用 setContentView(R.layout.refer_footer);
并且成功添加了 textview。但是当我 运行 一个应用程序时,它只显示页脚的内容。(不是列表视图)所以我使用 setContentView(R.layout.activvity_lecture_refer_room);
然后应用程序什么都不显示。
我应该怎么做才能显示包含页脚的 lsitview?
这里:
setContentView(R.layout.refer_footer);
无需使用 refer_footer
布局调用 setContentView
,因为 refer_footer
布局适用于您使用 addFooterView
添加的 ListView 页脚:
// inflate foooter layout
View footer = getLayoutInflater().inflate(R.layout.refer_footer,
null, false);
// get footer_layout from footer
LinearLayout ll = (LinearLayout)footer.findViewById(R.id.footer_layout);
// create TextView
TextView tv= new TextView(this);
tv.setText(element.text());
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setVisibility(View.VISIBLE);
// add textview to footer_layout
ll.addView(textview);
// set layout for footer
listView.addFooterView(footer);