我正在尝试在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) {
}
});
答案 0 :(得分:1)
您未在switch语句中使用break
,这会导致执行有效行为以外的所有情况,包括default
TextView也不会在开头显示任何内容,因为您在创建视图后添加了侦听器,因此您可以使用viewpager.getCurrentItem()
中的onCreate()
来首次显示正确的文本
答案 1 :(得分:0)
应用程序启动时没有显示任何文本,因为没有选择任何页面意味着永远不会触发onPageSelected方法。
选择页面时始终执行默认块,因为在每种情况下都不会使用break关键字。这意味着当案例0,案例1或案例2发生时,它将落入默认情况。