Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Android 将传呼机从ON向后滑动_Android_Android Viewpager - Fatal编程技术网

Android 将传呼机从ON向后滑动

Android 将传呼机从ON向后滑动,android,android-viewpager,Android,Android Viewpager,在包装器活动中按下backbutton时,我需要以编程方式更改寻呼机的幻灯片,但在onBackPressed内调用pager.setCurrentItem(1)时,应用程序将关闭 代码: public class MainActivity extends FragmentActivity { static final int NUM_ITEMS = 3; static int fSelected = 1; MyAdapter mAdapter; ViewPager mPager; // A

在包装器活动中按下backbutton时,我需要以编程方式更改寻呼机的幻灯片,但在onBackPressed内调用pager.setCurrentItem(1)时,应用程序将关闭

代码:

public class MainActivity extends FragmentActivity {

static final int NUM_ITEMS = 3;
static int fSelected = 1;

MyAdapter mAdapter;
ViewPager mPager;

// ADAPTER
public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return FirstFragment.init(position);
            case 1:
                return SecondFragment.init(position);
            case 2:
                return ThirdFragment.init(position);
            default:
                return null;
        }
    }

}


@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Context mContext = getApplicationContext();
    playAppearAnimation(mContext);

    // ANIM
    playAppearAnimation(getApplicationContext());



    final ViewPager mPager = findViewById(R.id.pager);
    mAdapter = new MyAdapter(getSupportFragmentManager());
    mPager.setAdapter(mAdapter);

    mPager.setCurrentItem(1);


    //disabilita lo scroll by touch0
    mPager.setOnTouchListener(new View.OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            return false;
        }
    });



    // BACK TO RETRIEVE PASSWORD
    TextView button = (TextView)findViewById(R.id.lost_password);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mPager.setCurrentItem(0);
        }
    });
    /*
    button = (Button)findViewById(R.id.goto_last);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {+

            mPager.setCurrentItem(NUM_ITEMS-1);
        }
    });*/



    // ANIMAZIONE DEL RECUPERA PASSWORD
    mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        public void onPageScrollStateChanged(int state) {}
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }
        public void onPageSelected(int position) {
            // NASCONDO LOST PASSWORD
            View lostPassword = (TextView)findViewById(R.id.lost_password);
            //Toast.makeText(getApplicationContext(),""+position, Toast.LENGTH_LONG).show();
            //>> HIDE / UNHIDE lost password
            switch(position){
                case 0:
                    fSelected = 0;
                    lostPassword.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_out));
                    break;
                case 1:
                    fSelected = 1;
                    lostPassword.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in));
                    break;
                case 2:
                    fSelected = 2;
                    lostPassword.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_out));
                    break;
            }
        }
    });


}

public void playAppearAnimation(Context context){
    ImageView logo = findViewById(R.id.logo);
    ImageView logotype = findViewById(R.id.logotype);
    logo.startAnimation(AnimationUtils.loadAnimation(context, R.anim.logo_anim));
    logotype.startAnimation(AnimationUtils.loadAnimation(context, R.anim.logo_anim));

    com.ubris.design.test1.NonSwipeableViewPager pager = findViewById(R.id.pager);
    pager.startAnimation(AnimationUtils.loadAnimation(context, R.anim.anim_fragments));
}


@Override
public void onBackPressed() {

    mPager.setCurrentItem(0);
}
Logcat:

public class MainActivity extends FragmentActivity {

static final int NUM_ITEMS = 3;
static int fSelected = 1;

MyAdapter mAdapter;
ViewPager mPager;

// ADAPTER
public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return FirstFragment.init(position);
            case 1:
                return SecondFragment.init(position);
            case 2:
                return ThirdFragment.init(position);
            default:
                return null;
        }
    }

}


@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Context mContext = getApplicationContext();
    playAppearAnimation(mContext);

    // ANIM
    playAppearAnimation(getApplicationContext());



    final ViewPager mPager = findViewById(R.id.pager);
    mAdapter = new MyAdapter(getSupportFragmentManager());
    mPager.setAdapter(mAdapter);

    mPager.setCurrentItem(1);


    //disabilita lo scroll by touch0
    mPager.setOnTouchListener(new View.OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            return false;
        }
    });



    // BACK TO RETRIEVE PASSWORD
    TextView button = (TextView)findViewById(R.id.lost_password);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mPager.setCurrentItem(0);
        }
    });
    /*
    button = (Button)findViewById(R.id.goto_last);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {+

            mPager.setCurrentItem(NUM_ITEMS-1);
        }
    });*/



    // ANIMAZIONE DEL RECUPERA PASSWORD
    mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        public void onPageScrollStateChanged(int state) {}
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }
        public void onPageSelected(int position) {
            // NASCONDO LOST PASSWORD
            View lostPassword = (TextView)findViewById(R.id.lost_password);
            //Toast.makeText(getApplicationContext(),""+position, Toast.LENGTH_LONG).show();
            //>> HIDE / UNHIDE lost password
            switch(position){
                case 0:
                    fSelected = 0;
                    lostPassword.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_out));
                    break;
                case 1:
                    fSelected = 1;
                    lostPassword.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in));
                    break;
                case 2:
                    fSelected = 2;
                    lostPassword.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_out));
                    break;
            }
        }
    });


}

public void playAppearAnimation(Context context){
    ImageView logo = findViewById(R.id.logo);
    ImageView logotype = findViewById(R.id.logotype);
    logo.startAnimation(AnimationUtils.loadAnimation(context, R.anim.logo_anim));
    logotype.startAnimation(AnimationUtils.loadAnimation(context, R.anim.logo_anim));

    com.ubris.design.test1.NonSwipeableViewPager pager = findViewById(R.id.pager);
    pager.startAnimation(AnimationUtils.loadAnimation(context, R.anim.anim_fragments));
}


@Override
public void onBackPressed() {

    mPager.setCurrentItem(0);
}
java.lang.NullPointerException:尝试调用虚拟方法“void” null上的android.support.v4.view.ViewPager.setCurrentItem(int)“” 对象引用 位于com.ubris.design.test1.MainActivity.onBackPressed(MainActivity.java:155) 位于android.app.Activity.onKeyUp(Activity.java:2826) 位于android.view.KeyEvent.dispatch(KeyEvent.java:2766) 位于android.app.Activity.dispatchKeyEvent(Activity.java:3146) 位于com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:353) 在android.view.ViewRootImpl$viewPostimeiInputStage.processKeyEvent(ViewRootImpl.java:4742)中 在android.view.ViewRootImpl$viewPostimeiInputStage.onProcess中(ViewRootImpl.java:4713) 在android.view.ViewRootImpl$InputStage.deliver上(ViewRootImpl.java:4249) 在android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4302)中 在android.view.ViewRootImpl$InputStage.forward中(ViewRootImpl.java:4268) 在android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4395)中 在android.view.ViewRootImpl$InputStage.apply上(ViewRootImpl.java:4276) 在android.view.ViewRootImpl$AsyncInputStage.apply上(ViewRootImpl.java:4452) 在android.view.ViewRootImpl$InputStage.deliver上(ViewRootImpl.java:4249) 在android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4302)中 在android.view.ViewRootImpl$InputStage.forward中(ViewRootImpl.java:4268) 在android.view.ViewRootImpl$InputStage.apply上(ViewRootImpl.java:4276) 在android.view.ViewRootImpl$InputStage.deliver上(ViewRootImpl.java:4249) 在android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4302)中 在android.view.ViewRootImpl$InputStage.forward中(ViewRootImpl.java:4268) 在android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4428)中 在android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4589)中 在android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2512) 在android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2106)中 在android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2097)中 在android.view.inputmethod.InputMethodManager$IMInputEventSender.onInputEventFinished(InputMethodManager.java:2487)中 位于android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141) 在android.os.MessageQueue.nativePollOnce(本机方法) 下一步(MessageQueue.java:356) 位于android.os.Looper.loop(Looper.java:138) 位于android.app.ActivityThread.main(ActivityThread.java:6523) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)上 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)上以斜体显示


从代码中删除
super.onBackPressed()
——在这种情况下通常会关闭应用程序

UPD.:当您发布代码时,问题现在已经清楚了。
更改
final ViewPager mPager=findviewbyd(R.id.pager)
mPager=findviewbyd(R.id.pager)
分配其值,而不是创建局部变量。

从代码中删除
super.onBackPressed()
——在这种情况下,通常会关闭应用程序

UPD.:当您发布代码时,问题现在已经清楚了。
更改
final ViewPager mPager=findviewbyd(R.id.pager)
mPager=findviewbyd(R.id.pager)
指定其值,而不是创建局部变量。

@Override public void onBackPressed(){mPager.setCurrentItem(0);}1。检查是否使用调试器或
Log.d(“标记”、“消息”)
调用了该方法。。。2.检查logcat是否有错误,很可能只是一个崩溃,然后发布NullPointerException的完整错误报告以及添加到post@Overridepublic void onBackPressed(){mPager.setCurrentItem(0);}1。检查是否使用调试器或
Log.d(“标记”、“消息”)
调用了该方法。。。2.检查logcat是否有错误,很可能只是一个崩溃,然后发布NullPointerException的完整错误报告以及添加到post中的活动代码