Java 按钮只有在第二次触摸后才能工作
我做了一个幻灯片活动,有两个按钮。一个到达下一层,另一个到达上一层。但它们只在触摸两次时才起作用。只要碰一次,什么也不会发生。我希望他们工作时,触摸1次。像往常一样 活动:Java 按钮只有在第二次触摸后才能工作,java,android,android-viewpager,android-button,slide,Java,Android,Android Viewpager,Android Button,Slide,我做了一个幻灯片活动,有两个按钮。一个到达下一层,另一个到达上一层。但它们只在触摸两次时才起作用。只要碰一次,什么也不会发生。我希望他们工作时,触摸1次。像往常一样 活动: package world.cryneo.partytime.java; public class introActivity extends AppCompatActivity { private ViewPager mSlideViewPager; private LinearLayout mDotL
package world.cryneo.partytime.java;
public class introActivity extends AppCompatActivity {
private ViewPager mSlideViewPager;
private LinearLayout mDotLayout;
private SlideAdapter slideAdapter;
private TextView[] mDots;
private Button mNextBtn, mBackBtn;
private int mCurrentPage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
mSlideViewPager = (ViewPager) findViewById(R.id.slideViewPager);
mDotLayout = (LinearLayout) findViewById(R.id.dots_layout);
mNextBtn = (Button) findViewById(R.id.button3);
mBackBtn = (Button) findViewById(R.id.button2);
slideAdapter = new SlideAdapter(this);
mSlideViewPager.setAdapter(slideAdapter);
addDotsIndicator(0);
mSlideViewPager.addOnPageChangeListener(viewListener);
mNextBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mNextBtn.getText().equals("Fertig")){
Intent settingsIntent = new Intent(introActivity.this, MainActivity.class);
startActivity(settingsIntent);
}
mSlideViewPager.setCurrentItem(mCurrentPage++);
}
});
mBackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mSlideViewPager.setCurrentItem(mCurrentPage--);
}
});
}
public void addDotsIndicator(int position){
mDots = new TextView[4];
mDotLayout.removeAllViews();
for (int i=0; i< mDots.length; i++){
mDots[i] = new TextView(this);
mDots[i].setText(Html.fromHtml("•"));
mDots[i].setTextSize(35);
mDots[i].setTextColor(getResources().getColor(R.color.white));
mDotLayout.addView(mDots[i]);
}
if (mDots.length > 0){
mDots[position].setTextColor(getResources().getColor(R.color.colorwhite));
}
}
ViewPager.OnPageChangeListener viewListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
addDotsIndicator(i);
mCurrentPage = i;
if (i == 0) {
mBackBtn.setVisibility(View.INVISIBLE);
mNextBtn.setText("Weiter");
mBackBtn.setText("Zurück");
} else if (i == mDots.length -1){
mBackBtn.setVisibility(View.VISIBLE);
mNextBtn.setText("Fertig");
mBackBtn.setText("Zurück");
} else {
mBackBtn.setVisibility(View.VISIBLE);
mNextBtn.setText("Weiter");
mBackBtn.setText("Zurück");
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
};
}
谢谢你的帮助。改变
mSlideViewPager.setCurrentItem(mCurrentPage++)
tomSlideViewPager.setCurrentItem(++mCurrentPage)代码>
及
mSlideViewPager.setCurrentItem(mCurrentPage--)代码>至mSlideViewPager.setCurrentItem(--mCurrentPage)代码>
使用mCurrentPage++
调用setCurrentItem(0)
,然后将mCurrentPage
更改为1。下次单击按钮时,它将调用setCurrentItem(1)
,并将mCurrentPage
设置为2mSlideViewPager
从第0页开始,因此setCurrentItem(0)
不执行任何操作,只有第二次单击才会触发页面从0更改为1
使用++mCurrentPage
时,首先将mCurrentPage
设置为1,然后才调用setCurrentItem(1)
。下次单击按钮时,它会将mCurrentPage
设置为2,并调用setCurrentItem(2)
您能试试这个吗
mSlideViewPager.setAdapter(slideAdapter);
mSlideViewPager.setCurrentItem(0);
addDotsIndicator(0);
第一次下一个按钮文本是什么?它的“Weiter”(德语表示下一个)。当用户在最后一层时,文本变为“Fertig”(德语表示finish),按下按钮时,意图将他发送到下一个活动@法希达布兹
mSlideViewPager.setAdapter(slideAdapter);
mSlideViewPager.setCurrentItem(0);
addDotsIndicator(0);