0

三个片段活动MainFragmentActivityReportsReportsType

报告正在调用ReportsType

有一个后退按钮ReportsType可以使用以下代码返回:

public void goBackReport(View v)
    {
       finish(); // why MainFragmentActivity.java is called after finish()?
    }

但它总是回到MainFragmentActivity.java. 但它应该是Reports.java

更新:

报告.java

public void showReport(View v) {
        String tag = v.getTag().toString();
    Intent i5 = new Intent(this, ReportsType.class);
    i5.putExtra("name", tag);
    FragmentTransactiontransaction=getSupportFragmentManager().beginTransaction();
        transaction.addToBackStack(null).commit();
        startActivity(i5);

    }

报告类型.java

public void goBackReport(View v)
    {
       getSupportFragmentManager().popBackStack(); //nothing happens
    }
4

2 回答 2

2

没有调用的finish()概念Fragment。相反,您应该在执行事务时保留一堆片段。例如:

ft.addToBackStack(null);   // ft is FragmentTransaction

因此,当您按下back-key时,当前活动(包含多个片段)将加载前一个片段而不是完成自身。

于 2013-04-09T09:05:08.033 回答
0

尝试这个..

Intent i=new Intent(this,MainFragmentActivity.class)
startActivity(i);
finish();

Intent i=new Intent(this,Reports.class)
startActivity(i);
finish();

Intent i=new Intent(this,ReportsType.class)
startActivity(i);
finish();

当您最后调用 new Activity 时,请编写完成()

于 2013-04-09T08:58:38.773 回答