Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
If statement Android if语句在setOnClickListener上不起作用_If Statement_Android Intent_Switch Statement - Fatal编程技术网

If statement Android if语句在setOnClickListener上不起作用

If statement Android if语句在setOnClickListener上不起作用,if-statement,android-intent,switch-statement,If Statement,Android Intent,Switch Statement,我已经创建了一个包含3张幻灯片的android studio屏幕,当我在第三张幻灯片上按下按钮mNextBtn时,我需要它切换到另一个Java类。正如您在下面的代码中所看到的,我使用了if语句,但它不起作用,因为当我运行并按下mButtonBtn按钮时,应用程序停止,我如何修复它 public class Portada extends AppCompatActivity { private ViewPager mSlideViewPager; private LinearLayout mDo

我已经创建了一个包含3张幻灯片的android studio屏幕,当我在第三张幻灯片上按下按钮mNextBtn时,我需要它切换到另一个Java类。正如您在下面的代码中所看到的,我使用了if语句,但它不起作用,因为当我运行并按下mButtonBtn按钮时,应用程序停止,我如何修复它

public class Portada extends AppCompatActivity {

private ViewPager mSlideViewPager;
private LinearLayout mDotLayout;

private TextView[] mDots;

private SliderAdapter sliderAdapter;

private Button mNextBtn;
private Button mBackBtn;

private int mCurrentpage;

 int mLogin;


public void onLogin (){
    if (mDots.length == 3){
        Intent intent= new Intent(Portada.this, Login.class);
        startActivity(intent);
    }else
    {
        mSlideViewPager.setCurrentItem(mCurrentpage + 1);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_portada);

    mSlideViewPager = (ViewPager) findViewById(R.id.slideViewPager);
    mDotLayout = (LinearLayout) findViewById(R.id.dotsLayout);

    mNextBtn = (Button) findViewById(R.id.nextBtn);
    mBackBtn = (Button) findViewById(R.id.prevBtn);

    sliderAdapter = new SliderAdapter(this);

    mSlideViewPager.setAdapter(sliderAdapter);

    addDotsIndicator(0);
    mSlideViewPager.addOnPageChangeListener(viewListerer);


    mNextBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mDots.length == 3){
                Intent intent= new Intent(getApplicationContext(), Login.class);
                startActivity(intent);
            }else
            {
                mSlideViewPager.setCurrentItem(mCurrentpage + 1);
            }
        }
    });


    mBackBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mSlideViewPager.setCurrentItem(mCurrentpage - 1);
        }
    });

}

public void addDotsIndicator(int position) {
    mDots = new TextView[3];
    mDotLayout.removeAllViews();

    for(int i = 0; i < mDots.length; i++ ){

        mDots[i] = new TextView(this);
        mDots[i].setText(Html.fromHtml("&#8226;"));
        mDots[i].setTextSize(50);
        mDots[i].setTextColor(getResources().getColor(R.color.colorTransparentWhite));

        mDotLayout.addView(mDots[i]);

    }

    if (mDots.length > 0){
        mDots[position].setTextColor(getResources().getColor(R.color.colorWhite));
    }
}

ViewPager.OnPageChangeListener viewListerer = 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){
            mNextBtn.setEnabled(true);
            mBackBtn.setEnabled(false);
            mBackBtn.setVisibility(View.INVISIBLE);
            mNextBtn.setText("NEXT");
            mBackBtn.setText("");
        }else if(i == mDots.length - 1) {
            mNextBtn.setEnabled(true);
            mBackBtn.setEnabled(true);
            mBackBtn.setVisibility(View.VISIBLE);
            mNextBtn.setText("FINISH");
            mBackBtn.setText("BACK");
        }else {
            mNextBtn.setEnabled(true);
            mBackBtn.setEnabled(true);
            mBackBtn.setVisibility(View.VISIBLE);
            mNextBtn.setText("NEXT");
            mBackBtn.setText("BACK");
        }

    }

    @Override
    public void onPageScrollStateChanged(int i) {

    }
};
公共类Portada扩展了AppCompative活动{
私人取景寻呼机mSlideViewPager;
私人线路布局;
私有文本视图[]mdot;
专用滑块适配器滑块适配器;
专用按钮mNextBtn;
专用按钮mBackBtn;
私有int mCurrentpage;
int-mLogin;
public void onLogin(){
如果(mDots.length==3){
Intent Intent=新的Intent(Portada.this、Login.class);
星触觉(意向);
}否则
{
mSlideViewPager.setCurrentItem(mCurrentpage+1);
}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_portada);
mSlideViewPager=(ViewPager)findViewById(R.id.slideViewPager);
mDotLayout=(LinearLayout)findviewbyd(R.id.dotsLayout);
mNextBtn=(按钮)findViewById(R.id.nextBtn);
mBackBtn=(按钮)findviewbyd(R.id.prevBtn);
sliderAdapter=新的sliderAdapter(此);
mSlideViewPager.setAdapter(滑动适配器);
addDotsIndicator(0);
mSlideViewPager.addOnPageChangeListener(viewListener);
mNextBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(mDots.length==3){
Intent Intent=新的Intent(getApplicationContext(),Login.class);
星触觉(意向);
}否则
{
mSlideViewPager.setCurrentItem(mCurrentpage+1);
}
}
});
mBackBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
mSlideViewPager.setCurrentItem(mCurrentpage-1);
}
});
}
公共无效添加点指示器(整数位置){
mDots=新文本视图[3];
mDotLayout.removeallview();
for(int i=0;i0){
mDots[position].setTextColor(getResources().getColor(R.color.colorWhite));
}
}
ViewPager.OnPageChangeListener viewListener=新建ViewPager.OnPageChangeListener(){
@凌驾
页面上的公共无效已滚动(整数i、浮点v、整数i1){
}
@凌驾
已选择页面上的公共无效(int i){
addDotsIndicator(i);
mCurrentpage=i;
如果(i==0){
mNextBtn.setEnabled(真);
mBackBtn.setEnabled(false);
mBackBtn.setVisibility(视图不可见);
mNextBtn.setText(“下一步”);
mBackBtn.setText(“”);
}else if(i==mDots.length-1){
mNextBtn.setEnabled(真);
mBackBtn.setEnabled(真);
mBackBtn.setVisibility(View.VISIBLE);
mNextBtn.setText(“完成”);
mBackBtn.setText(“背面”);
}否则{
mNextBtn.setEnabled(真);
mBackBtn.setEnabled(真);
mBackBtn.setVisibility(View.VISIBLE);
mNextBtn.setText(“下一步”);
mBackBtn.setText(“背面”);
}
}
@凌驾
页面上的公共无效状态已更改(int i){
}
};
}


`

mDots的定义在哪里?它被定义为文本视图[],我没有把这部分代码放进去,因为它很好,问题就在这部分。我看到你更改了一些当前项目,但不清楚
mDots
的长度何时为3,导致活动更改。我已对其进行了编辑,以便您现在可以看到stacktrace中的整个代码