0

を表示しようとしていますListView

activity私は1つを作成しました.1つonCreate()を起動AsyncTaskしているonPostExecute()方法で、その中に表示しようとListViewしています。

しかし、listViewオブジェクトはnullを受け取ります..

以下はコードスニペットです。

 protected void onPostExecute(KpiResponseObject kpiReportResponse) {
     ListView listView;
     listView = (ListView) findViewById(R.id.list_view);
}

ここでは、オブジェクトで null を受け取っていlistViewます。

私はこれがcontext問題だと思っていますが、それが何であるかを正確に理解することはできません.

4

4 に答える 4

2

を持っていてsetContentView、XML で定義したことは確かですか?onCreateListView list_view

于 2012-04-09T06:40:05.040 に答える
1

配置しようとしているレイアウトにはsetContentView()、ID が であるビューがありませんlist_view

于 2012-04-09T06:39:14.620 に答える
1

@brig これはほぼ 100% コンテキストの問題です。上にあるビューの 1 つから findViewByID を呼び出す必要があります。簡単な解決策は、コンテキストをこの asynctask に渡すことです (これはある種の asynctask であると想定しています)。コンストラクターでメンバーを設定します

private Context mContext;

public myAsync(Context context){
  mContext = context;
}

その後、あなたの呼び出しで

protected void onPostExecute(KpiResponseObject kpiReportResponse) {
     ListView listView;
     listView = (ListView) mContext.findViewById(R.id.list_view);
}
于 2012-04-09T06:40:16.620 に答える
1

null 値を取得する理由は 2 つあります。この両方を確認してください。

于 2012-04-09T06:46:45.260 に答える