In my fragment activity am using the webview.when i am clicking on the hyperlink on the webview its redirecting to the specified url its fine.but the problem is when i am clicking on back it is redirected to the home fragment instead of the previos page.Can anyone help me how to redirect to the previous page on the webview.Below is my code in the mainactivity where i am handling the fragment onback press events.
private void selectItem(int position) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Locate Position
Fragment fragment = null;
switch (position) {
case 0:
//ft.replace(R.id.content_frame, frag,"home");
fragment=new Fagmentmain();
/*startActivity(new Intent(MainActivity.this,Category.class));*/
break;
case 1:
//ft.replace(R.id.content_frame, webfrag,"web");
fragment=new WebFragment();
/*Intent intent=new Intent(MainActivity.this,News.class);
intent.putExtra("pos",0);
startActivity(intent);*/
//startActivity(new Intent(MainActivity.this,News.class));
break;
case 2:
//ft.replace(R.id.content_frame, aboutfrag,"about");
Intent intent1=new Intent(MainActivity.this,News.class);
intent1.putExtra("pos",1);
startActivity(intent1);
break;
case 3:
Intent intent2=new Intent(MainActivity.this,News.class);
intent2.putExtra("pos",2);
startActivity(intent2);
break;
}
/*ft.commit();
mDrawerList.setItemChecked(position, true);
setTitle(title[position]);
mDrawerLayout.closeDrawer(mDrawerList);*/
if(fragment != null){
FragmentManager fragmanager=getSupportFragmentManager();
fragmanager.beginTransaction().replace(R.id.content_frame,fragment).addToBackStack("").commit();
mDrawerList.setItemChecked(position, true);
setTitle(title[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
FragmentManager fm = getSupportFragmentManager();
//FragmentTab1 frag=(FragmentTab1)getSupportFragmentManager().findFragmentById(arg0)
if (fm.getBackStackEntryCount() > 0) {
Log.e("back stack entry", fm.getBackStackEntryCount() + "");
fm.popBackStack();
}
}
solved the problem by adding following code in my Fragment
webview.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack() ){
webview.goBack();
return true;
}
return false;
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.