Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段内的RecyclerView_Android_Android Fragments - Fatal编程技术网

Android 片段内的RecyclerView

Android 片段内的RecyclerView,android,android-fragments,Android,Android Fragments,以下RecyclerView在“else”中的片段类中运行时崩溃。我得到以下解释: 01-05 18:19:14.922 18178-18178/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ymoshel.moshel.handcuffed, PID: 18178

以下RecyclerView在“else”中的片段类中运行时崩溃。我得到以下解释:

01-05 18:19:14.922 18178-18178/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.ymoshel.moshel.handcuffed, PID: 18178
                                               java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
                                                   at com.designdemo.uaha.ThreeFragments.onCreateView(ThreeFragments.java:153)
                                                   at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
                                                   at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
                                                   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
                                                   at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
                                                   at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
                                                   at android.support.v4.view.ViewPager$3.run(ViewPager.java:251)
                                                   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
                                                   at android.view.Choreographer.doCallbacks(Choreographer.java:670)
                                                   at android.view.Choreographer.doFrame(Choreographer.java:603)
                                                   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
                                                   at android.os.Handler.handleCallback(Handler.java:739)
                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                   at android.os.Looper.loop(Looper.java:148)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5466)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
   String strtext = getArguments().getString("edttext");
    Log.d(TAG,"strtext: " + strtext);
    RecyclerView rv = (RecyclerView) inflater.inflate(
            R.layout.fragment_prod_list, container, false);
    mActivity = getActivity();
    thisFragType = getArguments().getInt(ARG_FRAG_TYPE, 0);
    thisFragTypew = getArguments().getInt(ARG_FRAG_TYPE, 1);



    Log.d(TAG, "The Frag Type is: " + thisFragType);
    Log.d(TAG,"test text "+text);
    if (thisFragType==RECENT_ARREST_FRAG||thisFragType==SEARCH_BY_NAME_FRAG) {
        setupRecyclerView(rv);
        return rv;
    }else {
 View view = inflater.inflate(R.layout.fragment_rssitem_detail,
                container, false);

        arrayListCountyNames = new ArrayList<>();
        test = getArguments().getString("edttext", "default");
        Log.d(TAG, "test: " + test);
        TextView textView = (TextView) view.findViewById(R.id.emptyView);
        textView.setText(test);


        final String shared_size = getDefaults("shared_size", mActivity);
        Log.d(TAG,"shared_size: "+shared_size);
        String [] listCountys = new String[Integer.parseInt(shared_size)];
        for (int i  = 0 ;i<Integer.parseInt(shared_size);i++){
            final String defaults = getDefaults("shared" + i, mActivity);
            listCountys[i]=defaults;
            arrayListCountyNames.add(defaults);
            Log.d(TAG,"shared: "+defaults);
        }
        RecyclerView recyclerView;
        recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);

        startAdapter(listCountys,listCountys,test );
        // Setup layout manager for items
        LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity);
        // Control orientation of the items
        // also supports LinearLayoutManager.HORIZONTAL
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);

        // Attach layout manager to the RecyclerView
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setVisibility(View.VISIBLE);

        adapter = new MyPickCountFavoriteArrestAdapter(mActivity,listCountys,listCountys,test);

        return view;
    }
01-05 18:19:14.922 18178-18178/?E/AndroidRuntime:致命异常:主
进程:com.ymoshel.moshel.handcupled,PID:18178
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)”
位于com.designdemo.uaha.ThreeFragments.onCreateView(ThreeFragments.java:153)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
位于android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
位于android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
在android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)上
在android.support.v4.view.ViewPager.populate上(ViewPager.java:1106)
在android.support.v4.view.ViewPager.populate上(ViewPager.java:952)
在android.support.v4.view.ViewPager$3.run(ViewPager.java:251)
在android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
位于android.view.Choreographer.doCallbacks(Choreographer.java:670)
位于android.view.Choreographer.doFrame(Choreographer.java:603)
在android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)中
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5466)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
字符串strtext=getArguments().getString(“edttext”);
Log.d(标签“strtext:+strtext”);
RecyclerView rv=(RecyclerView)充气机。充气(
R.layout.fragment\u产品列表,容器,假);
mActivity=getActivity();
thisFragType=getArguments().getInt(ARG\u FRAG\u TYPE,0);
thisFragTypew=getArguments().getInt(ARG\u FRAG\u类型,1);
Log.d(标签,“框架类型为:“+thisFragType”);
Log.d(标签,“测试文本”+文本);
如果(thisFragType==最近的逮捕| | | thisFragType==按(姓名)搜索){
设置回收视图(rv);
返回rv;
}否则{
视图=充气机。充气(R.layout.fragment\u rssitem\u详图,
货柜(虚假);;
arrayListCountyNames=新的ArrayList();
test=getArguments().getString(“edttext”,“default”);
日志d(标签“测试:”+测试);
TextView TextView=(TextView)view.findViewById(R.id.emptyView);
setText(测试);
最终字符串shared_size=getDefaults(“shared_size”,mActivity);
Log.d(标签,“共享大小:”+共享大小);
String[]listCountys=新字符串[Integer.parseInt(共享大小)];

对于(int i=0;i我看到其他视图(如“textView”)被适当地找到,并且没有导致NPE。这里需要检查的是id是否为“R.id.recyclerview”实际上正在被找到并返回一个适当的值,现在您已经在片段中,您尝试查找的回收器视图很可能只存在于活动的布局中,您可能也需要在片段中创建一个(或者片段中只有一个,因为这是您已经在活动中显示的内容)。此外,默认方向已经是垂直的,因此您不必在代码中进行设置。

请仔细检查布局xml中的id。您是对的,recyclerview id错误,它仍然没有显示recyclerview,但这已经是另一个问题。您需要在recyclerview上显式设置布局管理器。您是r如果recyclerview id错误,您知道我为什么仍然收到错误:01-05 19:07:33.496 22597-22597/?E/recyclerview:未连接适配器;跳过布局您就快到了:)。缺少的是您创建了适配器,但现在需要调用recyclerview.setAdapter(适配器)。当前,recyclerview未检测到告诉其如何操作或填充的适配器,因此不会呈现。