1

我需要帮助,在我AsyncTask调用我MainActivity的和更新适配器时,LogCat 给NullPointerExceptiononPostExecture检查了这个列表,它不为空,有一些值

异步任务.java

protected void onPostExecute(List<MoviesCategory> result){
    super.onPostExecute(result);
    //Here i have Error, i cheked result it's not null.
    //On AsyncTask i have Constructor when i get Activity.
    activity.mMoviesAdapter.addCategory(result);
}

适配器.java

List<MoviesCategory> mListMovies;

public void addCategory(List<MoviesCategory> list){
    mListMovies.addAll(list);
    notifyDataSetChanged();
}

我究竟做错了什么,

更新

更新

FATAL EXCEPTION: main
java.lang.NullPointerException
    at uz.afishamedia.Adapter.MoviesAdapter.addCategory(MoviesAdapter.java:49)
    at uz.afishamedia.Utils.LoadMovies.onPostExecute(LoadMovies.java:74)
    at uz.afishamedia.Utils.LoadMovies.onPostExecute(LoadMovies.java:1)
    at android.os.AsyncTask.finish(AsyncTask.java:631)
    at android.os.AsyncTask.access$600(AsyncTask.java:177)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5191)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
    at dalvik.system.NativeStart.main(Native Method)
4

4 回答 4

1

您的 mListMovies 列表是否已初始化?在您发布的代码中,您只创建引用变量,但不创建实际列表。如果引用变量未初始化,则对其调用方法将导致NullPointerException. 所以不要使用:

List<MoviesCategory> mListMovies;

利用:

List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>();
于 2013-01-07T07:15:23.100 回答
1

问题是 mListMovies 为空。在您的适配器中像这样初始化它:

private List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>(); 
于 2013-01-07T07:15:29.567 回答
1

我想你可能初始化失败了mListMovies
添加这可能会有所帮助:

List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>();
于 2013-01-07T07:17:11.443 回答
1

问题是mListMovies从一开始就是空的。您需要先对其进行初始化。

适配器.java

List<MoviesCategory> mListMovies = new ArrayList<MoviesCategory>();
于 2013-01-07T07:21:28.240 回答