java.lang.IllegalArgumentException:ViewPager没有设置PagerAdapter

富兰克林·乔尼

**我试图动态添加滑动选项卡,但是在使用setupWithViewPager添加选项卡时,它在tabLayout.setupWithViewPager(viewPager)中显示以下异常

03-17 15:01:24.593 3683-3718/info.androidhive.materialtabs I/OpenGLRenderer: Initialized EGL, version 1.4
03-17 15:01:24.611 3683-3718/info.androidhive.materialtabs D/OpenGLRenderer: Enabling debug mode 0
03-17 15:01:24.691 3683-3683/info.androidhive.materialtabs I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@3feea074 time:133990912
03-17 15:01:26.807 3683-3683/info.androidhive.materialtabs I/Timeline: Timeline: Activity_launch_request id:info.androidhive.materialtabs time:133993028
03-17 15:01:26.854 3683-3683/info.androidhive.materialtabs D/Action: Called In setViewPager
03-17 15:01:26.857 3683-3683/info.androidhive.materialtabs D/AndroidRuntime: Shutting down VM
03-17 15:01:26.862 3683-3683/info.androidhive.materialtabs E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: info.androidhive.materialtabs, PID: 3683
                                                                             java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.materialtabs/info.androidhive.materialtabs.activity.CustomViewTabsActivity}: java.lang.IllegalArgumentException: ViewPager does not have a PagerAdapter set
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
                                                                                 at android.app.ActivityThread.access$800(ActivityThread.java:156)
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                 at android.os.Looper.loop(Looper.java:211)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5371)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
                                                                              Caused by: java.lang.IllegalArgumentException: ViewPager does not have a PagerAdapter set
                                                                                 at android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:591)
                                                                                 at info.androidhive.materialtabs.activity.CustomViewTabsActivity.onCreate(CustomViewTabsActivity.java:66)
                                                                                 at android.app.Activity.performCreate(Activity.java:5990)
                                                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) 
                                                                                 at android.app.ActivityThread.access$800(ActivityThread.java:156) 
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351) 
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                 at android.os.Looper.loop(Looper.java:211) 
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                                                 at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) 
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740) 

**

 import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    public class CustomViewTabsActivity extends AppCompatActivity {
    private Toolbar toolbar;
    private ViewPager viewPager;
    private TabLayout tabLayout;
    ArrayList<String> tabledata = null;
    ArrayList<ArrayList> tablist=new  ArrayList< ArrayList>();
    //private ArrayList<String> tablist = new ArrayList<>();

    Connection connection;
    Statement statement;
    Connectionclass connectionclass;


        @Override
        protected void onCreate(Bundle saveInstanceState) {
            super.onCreate(saveInstanceState);
            setContentView(R.layout.custom_swipetab);

            toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            getSupportActionBar().setHomeButtonEnabled(true);

           // ViewPager viewPager;
            viewPager = (ViewPager)findViewById(R.id.viewpager);
            setupViewPager(viewPager);

            tabLayout = (TabLayout) findViewById(R.id.tabs);

         tabLayout.setupWithViewPager(viewPager);---->>(Here I got Exceptions)

            try {
                connection = connectionclass.CONN();
                Log.d("DATA", "Connected" + connection);``

                String tabquery = "select Attribute_Name from TBL_PRD_ATTRIBUTES                                        where Screen_id=637 and Entry_Mode='HEADER' ";
                statement = connection.createStatement();
                Log.d("Action", "Statement Created");
                ResultSet resultSet = null;
                resultSet = statement.executeQuery(tabquery);

                while (resultSet.next()) {
                    tabledata = new ArrayList<String>();
                    tabledata.add(resultSet.getString(1));
                    tablist.add(tabledata);
                   // tabLayout.setupWithViewPager(viewPager);
                }
                Log.d("Data","In TABList"+tablist);
                setupViewPager(viewPager);
            } catch (Exception e) {
                Log.e("Error", "Connection Error" + e.getMessage());
            }
        }
        private void setupViewPager(ViewPager viewPager) {
            Log.d("Action","Called In setViewPager");
            ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
            Iterator iterator = tablist.iterator();
            ArrayList<String> getdata = null;
            while (iterator.hasNext()) {
                getdata = (ArrayList) iterator.next();
                Log.d("Action","IN WHILE");
                for (int k = 0; k < getdata.size(); k++) {
                    String tableviewer = getdata.get(k);
                    adapter.addFrag(new OneFragment(), "ONE");
                    adapter.addFrag(new TenFragment(), tableviewer);
                    Log.d("Action", "In TabCreation");
                    Log.d("DATA","Created TAB is"+tableviewer);
                    viewPager.setAdapter(adapter);
                }
            }
        }
        public class ViewPagerAdapter extends FragmentStatePagerAdapter {
            private final List<Fragment> mFragmentList = new ArrayList<>();
            private final List<String> mFragmentTitleList = new ArrayList<>();

            public ViewPagerAdapter(FragmentManager manager) {
                super(getSupportFragmentManager());
            }

            public Fragment getItem(int position) {
                return mFragmentList.get(position);
            }
            public int getCount() {
                return mFragmentList.size();
            }
            public void addFrag(Fragment fragment, String title) {
                mFragmentList.add(fragment);
                Log.d("DATA", "FragmentList" + mFragmentList);
                mFragmentTitleList.add(title);
                Log.d("DATA", "FragmentTitleList" + mFragmentTitleList);
            }
            @Override
            public CharSequence getPageTitle(int position) {
                return mFragmentTitleList.get(position);
            }
        }
    }
乔塞米加拉斯

添加tabLayout.setupWithViewPager(viewPager)setupViewPager(viewPager)所有内容后,移至第二个调用的下方tabledata原因:

setupViewPager(viewPager)在添加tabledata之前先进行调用tablist,因此在尝试对其进行迭代时,您Iterator为空并且从不调用viewPager.setAdapter(adapter),这就是您收到此错误的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.IllegalArgumentException:没有枚举const类

java.lang.IllegalArgumentException:无效通知(没有有效的小图标)

面对 java.lang.IllegalArgumentException

java.lang.IllegalArgumentException onActivityResult

错误:java.lang.IllegalArgumentException

春季测试-java.lang.IllegalArgumentException:没有足够的变量值可展开

java.lang.IllegalArgumentException异常:不能没有任何verificationProof,sessionInfo,ortemprary证明创建PhoneAuthCredential

java.lang.IllegalArgumentException:没有为该名称定义查询

java.lang.IllegalArgumentException:没有实现指定架构语言的SchemaFactory

Spring 4 Web-java.lang.IllegalArgumentException:[0]没有匹配的常量

Spring HTTP状态码-java.lang.IllegalArgumentException:没有匹配的常量

“ java.lang.IllegalArgumentException:没有配置匹配configSpec”打开相机意图时

java.lang.illegalargumentexception没有为此名称定义查询[...]

处理 java.lang.IllegalArgumentException 的最佳方法是什么:没有枚举常量

Gson java.lang.IllegalArgumentException:没有时区指示符

是什么原因导致“ java.lang.IllegalArgumentException:没有为键提供值”?

Android java.lang.IllegalArgumentException:没有此类服务ComponentInfo JobScheduler

谷歌云扳手java.lang.IllegalArgumentException:码头ALPN / NPN没有正确配置

java.lang.IllegalArgumentException:ID为2131558727的菜单项没有MediaRouteActionProvider

java.lang.IllegalArgumentException:没有为Class <MyActivity_>绑定的注射器工厂

引起:java.lang.IllegalArgumentException:没有为类绑定注入器工厂

java.lang.IllegalArgumentException:无法将java.lang.Short字段设置为java.lang.Short

java.lang.ClassNotFoundException:在路径上没有找到类“androidx.core.view.ViewPager”

java.lang.illegalargumentexception:无法设置空的TableModel

java.lang.IllegalArgumentException:不能具有viewTypeCount <1

java.lang.IllegalArgumentException:带有改型的非法URL

RuntimeException:具有MainActivity.onStart的java.lang.IllegalArgumentException

带有ViewPager的Android java.lang.IllegalStateException

java.lang.IllegalArgumentException: 没有找到 id 0x7f0d006d 的视图