如何在显示其他页面时显示不同的文本?

时间:2018-04-04 01:17:32

标签: android android-layout android-fragments android-viewpager

我正在尝试在TextView中为ViewPager的每个页面显示另一个文本。但是当应用程序是startet时它根本没有显示文本,当我更改页面时,只显示默认模式。 我已将以下代码放在onCreate中的MainActivity

  viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        final    TextView myTextView = findViewById(R.id.my_textview);

        @Override
        public void onPageSelected(int position) {
            switch (position) {
                case 0:
                    myTextView.setText("TextView1");
                case 1:
                    myTextView.setText("TextView2");
                case 2:
                    myTextView.setText("TextView3");
                default:
                    myTextView.setText("TextView");
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });

2 个答案:

答案 0 :(得分:1)

您未在switch语句中使用break,这会导致执行有效行为以外的所有情况,包括default

TextView也不会在开头显示任何内容,因为您在创建视图后添加了侦听器,因此您可以使用viewpager.getCurrentItem()中的onCreate()来首次显示正确的文本

答案 1 :(得分:0)

应用程序启动时没有显示任何文本,因为没有选择任何页面意味着永远不会触发onPageSelected方法。

选择页面时始终执行默认块,因为在每种情况下都不会使用break关键字。这意味着当案例0,案例1或案例2发生时,它将落入默认情况。