【发布时间】:2012-04-27 03:18:27
【问题描述】:
我正在使用 ListActivity,listview。
listView = getListView();
工作完美。我将页脚视图添加为
LayoutInflater inflater = getLayoutInflater();
listView.addFooterView( inflater.inflate( R.layout.footer, null ), null, false);
一切都很闪亮但丑陋,所以我想将此页脚视图(仅包含 1 个编辑文本和仅 1 个按钮)添加到 listView 的标题中
LayoutInflater inflater = getLayoutInflater();
listView.addHeaderView( inflater.inflate( R.layout.footer, null ), null, false);
突然一切都出错了,我立即得到 RuntimeException。
Suspended(exception RuntimeException)
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent)
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent)
ActivityThread.access$2200(ActivityThread, Activity$ActiviyRecord, Intent),
so on..
为什么会抛出异常? addFooterView 和 addHeaderView 有什么不同,如何将 Header 添加到 ListActivity 中?
更新
所以你可以在 cmets 中阅读,我的 logcat 仍然无法正常工作,但我现在只是尝试下一个:
} catch(Exception e){
Writer result = new StringWriter();
PrintWriter printWriter = new PrintWriter(result);
e.printStackTrace(printWriter);
String error = result.toString();
}
然后我放断点,我可以在表达式部分读取错误。它说 :
java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.
这对我们所有人都有启发。更改命令后,它可以正常工作。
【问题讨论】:
-
@add full logcat here...
-
logcat 根本不工作:S 从来没有对我工作过
-
@Victor:“logcat 根本不工作:S 从来没有对我工作过” - 你的意思是你不知道如何访问 logcat 数据?启动任何模拟器或将手机连接到 PC 并在 eclipse 中使用 DDMS,您会看到正在运行的每个应用程序都会将数据输出到 logcat。
-
@MisterSquonk 我的意思是,logcat 没有报告任何内容
-
@Victor: 然后用
catch(Exception e)捕获异常并在catch 块中使用e.printStackTrace()
标签: android header footer listactivity