当前位置: 首页 > 知识库问答 >
问题:

应用程序在Android中使用gridview时出现崩溃

姚航
2023-03-14

在我的应用程序中,我想在导航抽屉的片段中使用一个gridView,但我的应用程序正在崩溃。这是我的代码:

public class HomeFragment extends Fragment {

    GridView gridView;
    private String[] categoryHomeGridView;
    private Integer[] icon={R.drawable.cat_offer_women,R.drawable.cat_offer_men,
            R.drawable.cat_offer_food_and_drink,R.drawable.cat_offer_electronics};
    private ArrayList homeGridViewItems;
    private HomeGridViewListAdapter adapter;
    public HomeFragment(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);
        init();
        return view;
    }

    private void init() {
        // TODO Auto-generated method stub
        gridView=(GridView) getActivity().findViewById(R.id.homeGridView);
        categoryHomeGridView=getActivity().getResources().getStringArray(R.array.category_array);


        homeGridViewItems=new ArrayList();
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[0],
                icon[0]));
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[1],
                icon[1]));
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[2],
                icon[2]));
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[3],
                icon[3]));
    //  iconHomeGridView.recycle(); 

        adapter=new HomeGridViewListAdapter(getActivity().getApplicationContext()
                ,homeGridViewItems);
        gridView.setAdapter(adapter); 

    }
}
03-26 14:50:56.524: E/AndroidRuntime(2355): FATAL EXCEPTION: main
03-26 14:50:56.524: E/AndroidRuntime(2355): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.couponoffer/com.example.couponoffer.MainActivity}: java.lang.NullPointerException
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.os.Looper.loop(Looper.java:137)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.ActivityThread.main(ActivityThread.java:4745)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at java.lang.reflect.Method.invokeNative(Native Method)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at java.lang.reflect.Method.invoke(Method.java:511)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at dalvik.system.NativeStart.main(Native Method)
03-26 14:50:56.524: E/AndroidRuntime(2355): Caused by: java.lang.NullPointerException
03-26 14:50:56.524: E/AndroidRuntime(2355):     at fragments.HomeFragment.init(HomeFragment.java:57)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at fragments.HomeFragment.onCreateView(HomeFragment.java:34)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.BackStackRecord.run(BackStackRecord.java:635)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.Activity.performStart(Activity.java:5017)
03-26 14:50:56.524: E/AndroidRuntime(2355):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032)
03-26 14:50:56.524: E/AndroidRuntime(2355):     ... 11 more

共有1个答案

施令秋
2023-03-14

将这一行GridView=(GridView)getActivity().findViewById(r.id.HomeGridView);放置在onCreate中,并像下面这样做,因为您的GridView是视图的一部分。或者将View视图传递给init();

像这样:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);
        init(view);
        return view;
    }

private void init(View rootView) {
        // TODO Auto-generated method stub
        gridView=(GridView) rootView.findViewById(R.id.homeGridView);
        categoryHomeGridView=getActivity().getResources().getStringArray(R.array.category_array);


        homeGridViewItems=new ArrayList();
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[0],
                icon[0]));
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[1],
                icon[1]));
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[2],
                icon[2]));
        homeGridViewItems.add(new HomeGridViewItem(categoryHomeGridView[3],
                icon[3]));
    //  iconHomeGridView.recycle(); 

        adapter=new HomeGridViewListAdapter(getActivity().getApplicationContext()
                ,homeGridViewItems);
        gridView.setAdapter(adapter); 

    }
 类似资料:
  • 我有以下代码,试图在ListView中创建一个简单的ListAdapter(我以前使用过这段代码,这是我唯一更改内容的地方): 当单步执行时,什么都不会发生,但当运行时,我在ChoreoGrapher中得到了一个null点异常。doCallbacks,当我创建一个空的数组列表时,它不会崩溃: 什么是编舞,为什么它会使我的应用程序崩溃? 我完全被困在可能的问题上,或者如何找出问题所在。Eclipse

  • 我是android和java的新手,我试着从教程中创建一个android的导航抽屉屏幕: http://www.androidhive.info/2013/11/Android-Sliding-Menu-Using-Navigation-Drawer/ 我复制了代码,我的代码中有一些活动可以很好地工作,但现在我尝试添加导航抽屉活动到我的应用程序,但它在启动时崩溃。我的menifest文件是这样的:

  • 我正在尝试将图像添加到我新创建的应用程序中。但是,当我运行我的应用程序时,它会崩溃。我没有在我的应用程序中编写任何代码,因此我提供了XML代码和错误日志。我在以前的应用程序中使用了ImageViews。没有错误。我已经优化了我的图像,但它仍然给我错误。 图像详细信息 错误日志: 09-08 16:03:02.266 15137-15137/ooper.loopE/AndroidRuntime: F

  • 我试图在Android Studio中建立一个OTP系统,我想出了下面给出的代码,然而,每次我尝试将OTP发送到我的电话号码时,应用程序都崩溃了。代码如下: Signp3RDClass.java

  • 在以前的代码上,谁医生帮了我 现在,android应用程序在我的手机上运行时崩溃了,这是错误日志 第一个问题是在我用相机扫描二维码后,它不能显示在二维码的结果进入 第二个问题是,我从存储器中选择了一个QRcode图像,然后点击确认,它崩溃了 下面是我认为的问题 类型不匹配:推断的类型是Uri?但乌里是意料之中的 冗余SAM构造函数 'onRequestPermissionsResult(Int,数

  • 我是新的Android。我试图将FB登录与我的Android应用程序集成。我已经按照developers.facebook.com的所有说明进行了集成。然而,当我试图运行我的应用程序时,它会在发布时崩溃。 请注意,我的AndroidManifest.xml中已经有Facebook应用程序ID、元数据标签和android活动标签。 布局如下: 以下是my LoginActivity的代码片段: 以下