activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" tools:context=".MainActivity" android:background="#fcfdfb" > <Button android:id="@+id/btn_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Back" android:enabled="false" /> <Button android:id="@+id/btn_forward" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Forward" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:enabled="false" /> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/btn_back" /> </RelativeLayout>
MainActivity.java
package com.cfsuman.me.androidcodesnippets; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.RelativeLayout; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Context mContext; private Activity mActivity; private RelativeLayout mRelativeLayout; private WebView mWebView; private Button mButtonBack; private Button mButtonForward; private String mUrl="http://developer.android.com/guide/index.html"; @Override protected void onCreate(Bundle savedInstanceState) { // Request window feature action kafetaria requestWindowFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the application context mContext = getApplicationContext(); // Get the activity mActivity = MainActivity.this; // Change the action kafetaria color getSupportActionBar().setBackgroundDrawable( new ColorDrawable(Color.parseColor("#FFF91EC6")) ); // Get the widgets reference from XML layout mRelativeLayout = (RelativeLayout) findViewById(R.id.rl); mWebView = (WebView) findViewById(R.id.web_view); mButtonBack = (Button) findViewById(R.id.btn_back); mButtonForward = (Button) findViewById(R.id.btn_forward); // Request to render the web page renderWebPage(mUrl); // Set a click listener for back button mButtonBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /* public boolean canGoBack () Gets whether this WebView has a back history item. Returns true : iff this WebView has a back history item */ if (mWebView.canGoBack()) { /* public void goBack () Goes back in the history of this WebView. */ mWebView.goBack(); // Display the notification Toast.makeText(mContext,"Go To Back",Toast.LENGTH_SHORT).show(); } } }); // Set a click listener for forward button mButtonForward.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /* public boolean canGoForward () Gets whether this WebView has a forward history item. Returns true : iff this WebView has a forward history item */ if (mWebView.canGoForward()) { /* public void goForward () Goes forward in the history of this WebView. */ mWebView.goForward(); // Display the notification Toast.makeText(mContext,"Go To Forward",Toast.LENGTH_SHORT).show(); } } }); } // Custom method to render a web page protected void renderWebPage(String urlToRender) { mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // Do something on page loading started } @Override public void onPageFinished(WebView view, String url) { // Do something when page loading finished // Check web view back history availability if(mWebView.canGoBack()){ mButtonBack.setEnabled(true); }else { mButtonBack.setEnabled(false); } // Check web view forward history availability if(mWebView.canGoForward()){ mButtonForward.setEnabled(true); }else { mButtonForward.setEnabled(false); } } }); mWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int newProgress) { } }); // Enable the javascript mWebView.getSettings().setJavaScriptEnabled(true); // Render the web page mWebView.loadUrl(urlToRender); } /* public void onBackPressed () Called when the activity has detected the user's press of the back key. The default implementation simply finishes the current activity, but you can override this to do whatever you want. */ @Override public void onBackPressed(){ Toast.makeText(mContext,"Back Key Pressed",Toast.LENGTH_SHORT).show(); // We also allow to navigate back history by pressing device back key if(mWebView.canGoBack()){ Toast.makeText(mContext,"Back History Available",Toast.LENGTH_SHORT).show(); mWebView.goBack(); }else { Toast.makeText(mContext,"No Back History Found",Toast.LENGTH_SHORT).show(); super.onBackPressed(); } } }
Komentar
Posting Komentar