开发Gallery视图时设置适配器时发生错误。
开发Gallery视图时设置适配器时发生错误。
此问题已有答案:
基本上,我正在尝试创建一个具有图像的画廊视图的应用程序。我使用了网格视图来创建画廊视图。使用了Fragment而不是Activity。但是,当打开画廊会话时,应用程序会崩溃。以下是代码:
XML文件(fragment_gallery.xml):
Fragment文件(Gallery.java):
public class gallery extends Fragment { GridView gridView; public gallery() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_gallery, container, false); gridView = (GridView) container.findViewById(R.id.gridView); gridView.setAdapter(new ImageAdapter(this)); return view; } }
适配器类(ImageAdapter.java):
public class ImageAdapter extends BaseAdapter{ private Context context; public Integer[] images = { R.drawable.about, R.drawable.gallery, R.drawable.home, R.drawable.invitation, R.drawable.register, R.drawable.membership, R.drawable.about, R.drawable.gallery, R.drawable.home, R.drawable.invitation, R.drawable.register, R.drawable.membership, R.drawable.about, R.drawable.gallery, R.drawable.home, R.drawable.invitation, R.drawable.register, R.drawable.membership, R.drawable.about, R.drawable.gallery }; public ImageAdapter(Context c){ context = c; } public ImageAdapter(gallery g){ } @Override public int getCount() { return images.length; } @Override public Object getItem(int i) { return images[i]; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ImageView imageView = new ImageView(context); imageView.setImageResource(images[i]); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imageView.setLayoutParams(new GridView.LayoutParams(240,240)); return imageView; } }
这是我得到的错误:
09-12 22:25:45.359 29157-29157/com.example.tonymathew.eliteenglishclub E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.tonymathew.eliteenglishclub, PID: 29157 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference at com.example.tonymathew.eliteenglishclub.gallery.onCreateView(gallery.java:28) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:536) at android.os.Handler.handleCallback(Handler.java:746) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
admin 更改状态以发布 2023年5月24日