【问题标题】:Android Fragment go back to menu activityAndroid Fragment 返回菜单活动
【发布时间】:2019-08-02 12:59:53
【问题描述】:

我有一个带有按钮的菜单活动,并且对于每个按钮,它都会打开一个屏幕滑动页面活动,该活动通过滑动浏览片段。

菜单活动 按钮->片段1片段2片段3片段4 按钮 按钮 按钮

例如,当我从 fragment4 按下返回按钮时,它会返回到 fragment3。 我需要的是在按下后返回菜单活动。

package activities;

import android.content.Intent;
import android.net.Uri;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

import com.flixarts.ar.*.R;
import com.flixarts.ar.*.familyfragment1;
import com.flixarts.ar.*.familyfragment10;
import com.flixarts.ar.*.familyfragment11;
import com.flixarts.ar.*.familyfragment12;
import com.flixarts.ar.*.familyfragment13;
import com.flixarts.ar.*.familyfragment14;
import com.flixarts.ar.*.familyfragment15;
import com.flixarts.ar.*.familyfragment16;
import com.flixarts.ar.*.familyfragment17;
import com.flixarts.ar.*.familyfragment18;
import com.flixarts.ar.*.familyfragment19;
import com.flixarts.ar.*.familyfragment2;
import com.flixarts.ar.*.familyfragment20;
import com.flixarts.ar.*.familyfragment21;
import com.flixarts.ar.*.familyfragment22;
import com.flixarts.ar.*.familyfragment23;
import com.flixarts.ar.*.familyfragment24;
import com.flixarts.ar.*.familyfragment25;
import com.flixarts.ar.*.familyfragment26;
import com.flixarts.ar.*.familyfragment27;
import com.flixarts.ar.*.familyfragment28;
import com.flixarts.ar.*.familyfragment29;
import com.flixarts.ar.*.familyfragment3;
import com.flixarts.ar.*.familyfragment30;
import com.flixarts.ar.*.familyfragment31;
import com.flixarts.ar.*.familyfragment32;
import com.flixarts.ar.*.familyfragment33;
import com.flixarts.ar.*.familyfragment34;
import com.flixarts.ar.*.familyfragment35;
import com.flixarts.ar.*.familyfragment36;
import com.flixarts.ar.*.familyfragment4;
import com.flixarts.ar.*.familyfragment5;
import com.flixarts.ar.*.familyfragment6;
import com.flixarts.ar.*.familyfragment7;
import com.flixarts.ar.*.familyfragment8;
import com.flixarts.ar.*.familyfragment9;
import com.flixarts.ar.*.fragment1;
import com.flixarts.ar.*.fragment2;
import com.flixarts.ar.*.fragment3;
import com.flixarts.ar.*.fragment4;
import com.flixarts.ar.*.menuscreen;

public class family extends FragmentActivity implements fragment1.OnFragmentInteractionListener, fragment2.OnFragmentInteractionListener, fragment3.OnFragmentInteractionListener, fragment4.OnFragmentInteractionListener {

private TextView espacioFrases;
private TextView espacioFrasesTraducidas;
private Button next;
private Button buttonHome;
private ViewPager mPager;
private PagerAdapter pagerAdapter;
private static final int NUM_PAGES = 35;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_saludos);
    mPager = (ViewPager) findViewById(R.id.pager);
    pagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
    mPager.setAdapter(pagerAdapter);



}
@Override
public void onBackPressed(){
    if (mPager.getCurrentItem() == 0) {
        super.onBackPressed();
    }
    else {
        mPager.setCurrentItem(mPager.getCurrentItem() -1);
    }
}

@Override
public void onFragmentInteraction(Uri uri) {

}

private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
    public ScreenSlidePagerAdapter(FragmentManager fm){
        super(fm);
    }
    @Override
    public Fragment getItem(int position){
        switch (position){
            case 0: return new familyfragment1();
            case 1: return new familyfragment2();
            case 2: return new familyfragment3();
            case 3: return new familyfragment4();
            case 4: return new familyfragment5();
            case 5: return new familyfragment6();
            case 6: return new familyfragment7();
            case 7: return new familyfragment8();
            case 8: return new familyfragment9();
            case 9: return new familyfragment10();
            case 10: return new familyfragment11();
            case 11: return new familyfragment12();
            case 12: return new familyfragment13();
            case 13: return new familyfragment14();
            case 14: return new familyfragment15();
            case 15: return new familyfragment16();
            case 16: return new familyfragment17();
            case 17: return new familyfragment18();
            case 18: return new familyfragment19();
            case 19: return new familyfragment20();
            case 20: return new familyfragment21();
            case 21: return new familyfragment22();
            case 22: return new familyfragment23();
            case 23: return new familyfragment24();
            case 24: return new familyfragment25();
            case 25: return new familyfragment26();
            case 26: return new familyfragment27();
            case 27: return new familyfragment28();
            case 28: return new familyfragment29();
            case 29: return new familyfragment30();
            case 30: return new familyfragment31();
            case 31: return new familyfragment32();
            case 32: return new familyfragment33();
            case 33: return new familyfragment34();
            case 34: return new familyfragment35();
            case 35: return new familyfragment36();
            default: return new familyfragment1();
        }
    }

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

}

例如,如果我在片段 25 中并且我想返回菜单,我必须按 25 次返回按钮,我需要通过单击返回按钮进入 menu.activity

【问题讨论】:

  • 在 onBackPressed() 中什么也不做,不要在 backStack 中添加片段。

标签: android android-studio android-fragments android-activity android-viewpager


【解决方案1】:

添加 onBackPressed() 函数并调用 finish() 如下代码

@Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    相关资源
    最近更新 更多