【问题标题】:How to show a different text when another page is shown?显示另一个页面时如何显示不同的文本?
【发布时间】:2018-04-04 01:17:31
【问题描述】:

我正在尝试在 TextView 中为 ViewPager 的每个页面显示另一个文本。但是当应用程序启动时,它根本不显示文本,当我更改页面时,只显示默认模式。 我在MainActivity 中的onCreate 中添加了以下代码:

  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) {
        }
    });

【问题讨论】:

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


    【解决方案1】:

    您没有在您的 switch 语句案例中使用 break,这将导致执行有效案例以下的所有案例,包括 default

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

    【讨论】:

    • @SusanT.Erickson 我已经编辑了我的答案以包含其他问题
    【解决方案2】:

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

    默认块总是在选择页面时执行,因为在每种情况之后您都不会使用 break 关键字。这意味着当情况 0、情况 1 或情况 2 发生时,它将落入默认情况。

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2018-06-18
      • 2018-04-22
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      相关资源
      最近更新 更多