我在我的应用程序中有3个片段,例如
因此,在按下返回键时,我想显示先前的片段,但一旦用户在主页上并按下返回键,我就想关闭我的应用程序。我不知道如何做到这一点。
以下是我从导航抽屉中调用片段的方式:
HomePage,Frag1,Frag2,Frag3,Frag4。
因此,在我的应用程序中使用了导航抽屉。在主页上,我有一个网格视图,其中包含所有四个片段的链接。
如果用户从Homepage -> Frag1 -> Frag1.2 ->Frag1.3 ->HomePage.
导航。因此,在按下返回键时,我想显示先前的片段,但一旦用户在主页上并按下返回键,我就想关闭我的应用程序。我不知道如何做到这一点。
以下是我从导航抽屉中调用片段的方式:
protected void getUrl(int position) {
FragmentTransaction fragTran = getSupportFragmentManager()
.beginTransaction();
switch (position) {
case 0:
fragTran.replace(R.id.content_frame, dashboardFragment);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// fragTran.addToBackStack(null);
fragTran.commit();
break;
case 1:
if (CommonUtils.isNetworkConnected(getApplicationContext())) {
fragTran.replace(R.id.content_frame, frag1);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
} else {
Toast.makeText(getApplicationContext(),
"No Network Connection", Toast.LENGTH_LONG).show();
}
break;
case 2:
if (CommonUtils.isNetworkConnected(getApplicationContext())) {
fragTran.replace(R.id.content_frame, frag2);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
} else {
Toast.makeText(getApplicationContext(),
"No Network Connection", Toast.LENGTH_LONG).show();
}
break;
case 3:
if (CommonUtils.isNetworkConnected(getApplicationContext())) {
fragTran.replace(R.id.content_frame, frag3);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
} else {
Toast.makeText(getApplicationContext(),
"No Network Connection", Toast.LENGTH_LONG).show();
}
break;
default:
// return "";
}
}
这是我从GridView onClick中调用的方式:
final FragmentTransaction fragTran = getFragmentManager()
.beginTransaction();
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2,
long arg3) {
if (DASHBOARD_LINKS[arg2].equals("frag1")) {
if (CommonUtils.isNetworkConnected(getActivity())) {
fragTran.replace(R.id.content_frame,
frag1);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
} else {
Toast.makeText(getActivity(), "No Network Connection",
Toast.LENGTH_LONG).show();
}
}
if (DASHBOARD_LINKS[arg2].equals("frag2")) {
fragTran.replace(R.id.content_frame, frag2);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if (DASHBOARD_LINKS[arg2].equals("frag3")) {
fragTran.replace(R.id.content_frame, frag3);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
}
});