我正在尝试展示ListView
。
我创建了一个activity
,在onCreate()
方法中我启动了一个AsyncTask
,在onPostExecute()
方法中,我正在尝试显示ListView
。< / p>
但listView
对象接收空...
以下是代码段。
protected void onPostExecute(KpiResponseObject kpiReportResponse) {
ListView listView;
listView = (ListView) findViewById(R.id.list_view);
}
这里我在listView
对象中收到空。
我怀疑这是context
问题,但无法确定究竟是什么。
答案 0 :(得分:2)
您确定setContentView
中有onCreate
,然后在XML中定义了ListView
list_view
吗?
答案 1 :(得分:1)
您放在setContentView()
中的布局没有任何ID为list_view
的视图。
答案 2 :(得分:1)
@brig这几乎是100%的上下文问题。您应该从其中一个覆盖视图调用findViewByID。一个简单的解决方案就是将上下文传递给这个asynctask(我假设这是某种类型的asynctask)。在构造函数中设置一个memeber
private Context mContext;
public myAsync(Context context){
mContext = context;
}
然后在你打电话
protected void onPostExecute(KpiResponseObject kpiReportResponse) {
ListView listView;
listView = (ListView) mContext.findViewById(R.id.list_view);
}
答案 3 :(得分:1)
有两个原因你可能得到null值,一个是没有定义setContentView(xml),第二个是你调用Asynctask的上下文。检查这两件事情。