如何在填充ListView时收到通知?

时间:2012-09-04 00:30:29

标签: android listview

我正在使用ListActivity并使用适配器填充列表视图:

// SimpleAdapter adapter = ...
setListAdapter( adapter );
setContentView( R.layout.main );

ListView lv = getListView();

lv似乎没有孩子,即使我用布局中的子项填充它,并且适配器中有许多项目。我注意到,如果我等待一段时间 - 当列表视图完全呈现时 - 它确实有孩子。如何通知列表视图何时完全可以使用?

1 个答案:

答案 0 :(得分:1)

您可以使用AsyncTask在后台填充列表,然后在加载完成后通知您自己。

class MyTask extends AsyncTask<Context, Integer, String> {

    m_loaded = false;

    @Override
    protected String doInBackground(Context... params) {
        Log.d("doinBackground", "here");

        // do your loading

        return "";

    }

    // -- gets called just before thread begins
    @Override
    protected void onPreExecute() {
        super.onPreExecute();

    }

    // -- called as soon as doInBackground method completes
    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);

        m_loaded = true;  //your list is done loading
    }
}