I need to come back to the previous activity
from the current fragment
by pressing the Hardware Back Button
, But since I'm inside a Fragment I'm unable to use the onBackPressed()
method. Can some help me solving this issue.
My current fragment consists of a webclient video view, also When I try pressing the Hardware Back button normally the app closes.
public class Media_Lounge extends Fragment {
ArrayList<String> videoID = new ArrayList<String>();
ArrayList<String> videoTittle = new ArrayList<String>();
ArrayList<String> Duration = new ArrayList<String>();
ArrayList<String> videoImage = new ArrayList<String>();
ListView lv;
// private WebView mWebView;
private static SharedPreferences prefs;
private VideoEnabledWebView webView;
private VideoEnabledWebChromeClient webChromeClient;
private LoginScreenNew ll;
/**
* Provides a hook for calling "alert" from javascript. Useful for debugging
* your javascript.
*/
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
result.confirm();
return true;
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
View rootView = inflater
.inflate(R.layout.medialounge, container, false);
ll = (LoginScreenNew) getActivity();
Button activity_feed = (Button) rootView.findViewById(R.id.desk);
Button csuite = (Button) rootView.findViewById(R.id.csuite);
ll.mainButtonLayout.setVisibility(8);
RelativeLayout rv = (RelativeLayout) rootView
.findViewById(R.id.container);
new ASSL(getActivity(), rv, 720, 1196, true);
// Save the web view
webView = (VideoEnabledWebView) rootView.findViewById(R.id.webView);
// Initialize the VideoEnabledWebChromeClient and set event handlers
View nonVideoLayout = rootView.findViewById(R.id.media);
ViewGroup videoLayout = (ViewGroup) rootView
.findViewById(R.id.videoLayout); // Your own view, read class
webChromeClient = new VideoEnabledWebChromeClient(nonVideoLayout,
videoLayout, null, webView) // See all available constructors...
{
// Subscribe to standard events, such as onProgressChanged()...
@Override
public void onProgressChanged(WebView view, int progress) {
// Your code...
}
};
webChromeClient
.setOnToggledFullscreen(new VideoEnabledWebChromeClient.ToggledFullscreenCallback() {
@Override
public void toggledFullscreen(boolean fullscreen) {
// Your code to handle the full-screen change, for
// example showing and hiding the title bar. Example:
if (fullscreen) {
Log.i("Full screen is true", "Full screen is true");
WindowManager.LayoutParams attrs = getActivity()
.getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
attrs.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
getActivity().getWindow().setAttributes(attrs);
if (android.os.Build.VERSION.SDK_INT >= 14) {
getActivity()
.getWindow()
.getDecorView()
.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LOW_PROFILE);
}
} else {
Log.i("Full screen is false",
"Full screen is false");
WindowManager.LayoutParams attrs = getActivity()
.getWindow().getAttributes();
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
attrs.flags &= ~WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
getActivity().getWindow().setAttributes(attrs);
if (android.os.Build.VERSION.SDK_INT >= 14) {
getActivity()
.getWindow()
.getDecorView()
.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_VISIBLE);
}
}
}
});
webView.setWebChromeClient(webChromeClient);
// Navigate everywhere you want, this classes have only been tested on
// YouTube's mobile site
webView.loadUrl("http://dev.youareaceo.com/yaac/On-Air.html");
activity_feed.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ll.CampusScreenLayout
.setBackgroundResource(R.drawable.activity_feed_screen_bg);
ll.fragmentMain = new Myoffice();
if (ll.fragmentMain != null) {
try {
getActivity().getFragmentManager().beginTransaction()
.replace(R.id.main, ll.fragmentMain).commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
csuite.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// pop_Csuite();
Data1.urlLoad = Httppost_Links.webCsuit + "?token="
+ prefs.getString("accesstoken", "none");
ll.fragment = new SuccessUniversity();
try {
getFragmentManager().beginTransaction()
.replace(R.id.send_mint_rep, ll.fragment).commit();
} catch (Exception e) {
e.printStackTrace();
}
}
});
rootView.setFocusableInTouchMode(true);
rootView.requestFocus();
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.i("keyCode!!!!!!!!!!!!!!!!!!!!!!!", "keyCode: " + keyCode);
if (keyCode == KeyEvent.KEYCODE_BACK) {
ll.fragment = new Media_Lounge();
getActivity().getFragmentManager().beginTransaction()
.replace(R.id.send_mint_rep, ll.fragment).commit();
return true;
} else {
return false;
}
}
});
return rootView;
}
protected void pop_Csuite() {
final Dialog dialog1 = new Dialog(getActivity(),
android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog1.setContentView(R.layout.webview_fullscreen);
Window window = dialog1.getWindow();
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);
RelativeLayout rv = (RelativeLayout) dialog1
.findViewById(R.id.container);
new ASSL(getActivity(), rv, 720, 1196, true);
WindowManager.LayoutParams layoutParams = dialog1.getWindow()
.getAttributes();
layoutParams.dimAmount = 0.7f;
dialog1.getWindow()
.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
Button decline = (Button) dialog1.findViewById(R.id.closepop);
WebView webView1 = (WebView) dialog1.findViewById(R.id.web);
webView1.getSettings().setJavaScriptEnabled(true);
webView1.loadUrl(Httppost_Links.webCsuit + "?token="
+ prefs.getString("accesstoken", "none"));
webView1.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// do your handling codes here, which url is the requested url
// probably you need to open that url rather than redirect:
view.loadUrl(url);
return false; // then it is not handled by default action
}
});
decline.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog1.cancel();
}
});
dialog1.show();
}
class ViewHolder {
public ImageView video_image;
public int pos;
public TextView image_link;
public TextView duration;
public TextView tittle;
public LinearLayout listbox;
}
@Override
public void onPause() {
super.onPause();
try {
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webView, (Object[]) null);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException cnfe) {
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}