Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按钮只有在第二次触摸后才能工作_Java_Android_Android Viewpager_Android Button_Slide - Fatal编程技术网

Java 按钮只有在第二次触摸后才能工作

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

我做了一个幻灯片活动,有两个按钮。一个到达下一层,另一个到达上一层。但它们只在触摸两次时才起作用。只要碰一次,什么也不会发生。我希望他们工作时,触摸1次。像往常一样

活动:

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("&#8226;"));
            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++)
to
mSlideViewPager.setCurrentItem(++mCurrentPage)

mSlideViewPager.setCurrentItem(mCurrentPage--)
mSlideViewPager.setCurrentItem(--mCurrentPage)

使用
mCurrentPage++
调用
setCurrentItem(0)
,然后将
mCurrentPage
更改为1。下次单击按钮时,它将调用
setCurrentItem(1)
,并将
mCurrentPage
设置为2
mSlideViewPager
从第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);