Android 如何在显示其他页面时显示不同的文本?
我试图在TextView中为ViewPager的每一页显示另一个文本。但是当应用程序是startet时,它根本不显示文本,当我更改页面时,只显示默认模式。 我在Android 如何在显示其他页面时显示不同的文本?,android,android-layout,android-fragments,android-viewpager,Android,Android Layout,Android Fragments,Android Viewpager,我试图在TextView中为ViewPager的每一页显示另一个文本。但是当应用程序是startet时,它根本不显示文本,当我更改页面时,只显示默认模式。 我在main活动的onCreate中放入了以下代码: viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, flo
main活动的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) {
}
});
您没有在switch语句案例中使用break
,这将导致执行有效案例下的所有案例,包括default
此外,TextView在开始时不会显示任何内容,因为您在创建视图后添加了侦听器,因此可以在onCreate()中使用viewpager.getCurrentItem()
首次显示正确的文本应用程序启动时不会显示任何文本,因为没有选择任何页面,这意味着永远不会触发onPageSelected方法
选择页面时始终执行默认块,因为在每个情况下,您从不使用break关键字。这意味着当案例0、案例1或案例2发生时,它将变成默认案例。@SusanT.Erickson我已编辑了我的答案,以包含其他问题