Java listview.setAdapter(myAdapter)无法使用自定义适配器代码

Java listview.setAdapter(myAdapter)无法使用自定义适配器代码,java,android,listview,android-arrayadapter,Java,Android,Listview,Android Arrayadapter,我制作了一个定制的ArrayAdapter,它获取一系列电影对象,然后将电影海报图像放入imageview,将标题放入textview。这里可以看到电影类的字段;它有标准的getter和setter public class Movie { protected String id; protected String posterPath; protected String title; 以下是自定义ArrayAdapter构造函数: public class Movie

我制作了一个定制的ArrayAdapter,它获取一系列电影对象,然后将电影海报图像放入imageview,将标题放入textview。这里可以看到电影类的字段;它有标准的getter和setter

public class Movie {
    protected String id;
    protected String posterPath;
    protected String title;
以下是自定义ArrayAdapter构造函数:

public class MovieAdapter extends ArrayAdapter<Movie> {
    private static final String LOG_TAG = MovieAdapter.class.getSimpleName();

    /**
     *
     * @param context Current context used to inflate layout file
     * @param movies list of Movie objects that will be displayed in list
     */
    public MovieAdapter(Activity context, List<Movie> movies){
        super(context, 0, movies);
        Log.d(LOG_TAG, "adapter constructor");
        if(movies != null){
            for(int i = 0; i < movies.size(); i++){
                Log.d(LOG_TAG, movies.get(i).getTitle());
            }
        }
    }

movieInfo只是一个引用,它不指向任何对象,这意味着它有空值

请创建movieInfo的对象,如:

movieInfo = new ArrayList<>();

然后将适配器设置为列表。

movieInfo
设置
适配器时为空。首先初始化它。在使用Movie对象之前,分配movieInfo=new List();通过
List movieInfo=new ArrayList()初始化06-02 15:47:47.276 22311-22311/com.example.android.popularmovies D/MovieFragment: onCreateView Start
06-02 15:47:47.276 22311-22311/com.example.android.popularmovies D/MovieAdapter: adapter constructor
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies D/AbsListView: Get MotionRecognitionManager
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies E/MotionRecognitionManager: mSContextService = android.hardware.scontext.ISContextService$Stub$Proxy@1816532
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies E/MotionRecognitionManager: motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@7998283
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies E/MotionRecognitionManager: motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@7998283
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies D/MovieFragment: listview creation
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies D/MovieFragment: listview creation2
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies D/AndroidRuntime: Shutting down VM
06-02 15:47:47.286 22311-22311/com.example.android.popularmovies E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   Process: com.example.android.popularmovies, PID: 22311
                                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.popularmovies/com.example.android.popularmovies.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
                                                                                       at android.app.ActivityThread.access$1100(ActivityThread.java:221)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:158)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:7224)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                                                                                    Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
                                                                                       at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:337)
                                                                                       at android.widget.ListView.setAdapter(ListView.java:508)
                                                                                       at com.example.android.popularmovies.MovieFragment.onCreateView(MovieFragment.java:54)
                                                                                       at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
movieInfo = new ArrayList<>();
movieInfo.add(new Movie("1","path one","ONE"));
movieInfo.add(new Movie("2","path two","TWO"));
movieInfo.add(new Movie("1","path three","THREE"));
movieInfo.add(new Movie("1","path four","FOUR"));
movieInfo.add(new Movie("1","path five","FIVE"));