如何正确返回上一个片段?

关联

我正在尝试处理片段中的后退按钮。我希望它返回到它来自的片段,但是@Override我没有从其超类中覆盖它,但是我不为什么。此外,onBackPressed()从未使用过该方法我认为这很奇怪,因为它在我的活动中起作用。

public class RateFrag extends Fragment implements View.OnClickListener {

private RatingBar ratingBar;
private Button rateknap;
private Forslag forslag;

@Override
public View onCreateView(LayoutInflater i, ViewGroup container, Bundle savedInstanceState) {
    View rod = i.inflate(R.layout.activity_rate, container, false);
    setHasOptionsMenu(true);
    forslag = ((AnnonceDisplay) this.getActivity()).getForslag();
    getActivity().setTitle(forslag.getTitle());

    ratingBar = (RatingBar) rod.findViewById(R.id.ratingBar);
    rateknap = (Button) rod.findViewById(R.id.rateknap);
    rateknap.setOnClickListener(this);

    return rod;
}


@Override
public void onClick(View v) {
    if (v == rateknap) {
        AlertDialog alert = new AlertDialog.Builder(getActivity())
                .setMessage("Vil du give " + ratingBar.getRating() + " stjerner?")
                .setPositiveButton("Ja", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                launchintent();
                            }
                        }
                )
                .setNegativeButton("Nej", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();

                            }
                        }
                ).show();


    }
}

private void launchintent() {
    FragmentManager fm = getFragmentManager();
    Fragment f = fm.findFragmentById(R.id.fragment);
    if(fm.getBackStackEntryCount() > 0){
        fm.popBackStack();
    } else{
        getActivity().finish();
    }
       }
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_main, menu);
    super.onCreateOptionsMenu(menu, inflater);

}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.Forside) {
        Intent intent = new Intent(this.getActivity(), Forside.class);
        startActivity(intent);
    }
    else if (id == R.id.Logud){
        Intent intent = new Intent(this.getActivity(), LogInd.class);
        startActivity(intent);
    }

    return true;
}
@Override //Method does not override method from its superclass
public void onBackPressed() { //Method onBackPressed is never used
    if (getFragmentManager().getBackStackEntryCount() == 0) {
        getActivity().finish();
    } else {
        getFragmentManager().popBackStack();
    }
    return;
 }
}

在有人说这可能是重复的之前,我在这里搜索过Stackoverflow和Google。我实际上是Override从这里得到的,所以请告诉我哪里出了问题以及如何解决。

谢谢 :)

瓦西里斯·帕拉斯(Vasilis Pallas)

像这样覆盖您的Activity上的onBackPress

@Override
public void onBackPressed() {

    int count = getFragmentManager().getBackStackEntryCount();

    if (count == 0) {
        super.onBackPressed();
    } else {
        getFragmentManager().popBackStack();
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回上一个片段无法正常工作

来自分类Dev

按下不返回上一个片段

来自分类Dev

以编程方式返回到上一个片段

来自分类Dev

返回Android中onBackPressed上的上一个片段

来自分类Dev

从上一个片段返回时如何避免活动空白

来自分类Dev

如何返回到后栈中的上一个片段?

来自分类Dev

如何返回上一个活动

来自分类Dev

如何返回上一个活动?

来自分类Dev

如何回到上一个片段

来自分类Dev

恢复上一个片段onBackPressed()?

来自分类Dev

如何使用C#返回上一个表格?

来自分类Dev

登录后如何返回上一个URL?(ajax)

来自分类Dev

Django:如何返回上一个网址

来自分类Dev

netbeans 7.3.1如何返回上一个键入的位置?

来自分类Dev

如何返回上一个视图控制器?

来自分类Dev

Android:如何返回上一个活动

来自分类Dev

最近屏幕后如何返回上一个活动

来自分类Dev

zsh - 如何返回上一个目录?

来自分类Dev

返回上一个片段后,应用标题保持不变

来自分类Dev

需要按两次以返回到上一个片段

来自分类Dev

iOS:返回上一个视图

来自分类Dev

返回上一个活动状态

来自分类Dev

android返回上一个视图

来自分类Dev

返回上一个功能

来自分类Dev

如何在Android中的ViewPager上从右到左获取上一个片段

来自分类Dev

如何使用活动显示的片段转到上一个活动

来自分类Dev

如何验证上一个片段中按下的按钮

来自分类Dev

单击上一个抽屉项目的特定片段时如何打开下一个抽屉

来自分类Dev

单击上一个按钮时保留片段的状态