Tuesday, September 2, 2014

WebView Background Color (Transparent)

WebView webViewData = (WebView) findViewById(R.id.webView1);

webView1.setBackgroundColor(0x00000000);

WebView With HTML Script Demo

Ø  Create MainActivity.java class in src/package.


MainActivity.java


import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

       private WebView webView1;
       private ProgressDialog pd;

       @SuppressLint("SetJavaScriptEnabled")
       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);

             pd = ProgressDialog.show(this, "", "Loading...", true);

             webView1 = (WebView) findViewById(R.id.webView1);
             webView1.getSettings().setJavaScriptEnabled(true);
             webView1.getSettings().setSupportZoom(true);
             webView1.getSettings().setBuiltInZoomControls(true);
             webView1.setWebViewClient(new WebViewClient() {
                    @Override
                    public void onPageFinished(WebView view, String url) {
                           if (pd.isShowing() && pd != null) {
                                 pd.dismiss();
                           }
                    }
             });
             webView1.loadUrl("file:///android_asset/test.html");
       }
}


Ø  Create main.xml in res/layout.


main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>


Ø  Create test.html in assets.




test.html


<head>
<title>Internal Script</title>
</head>
<body>
       <script type="text/javascript">
   document.write("Hello Javascript!")
</script>

</body>

WebView With Loading Demo (WebViewClient)

Ø  Create MainActivity.java class in src/package.


MainActivity.java


import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

       private WebView webView1;
       private ProgressDialog pd;

       @SuppressLint("SetJavaScriptEnabled")
       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);

             pd = ProgressDialog.show(this, "", "Loading...", true);

             webView1 = (WebView) findViewById(R.id.webView1);
             webView1.getSettings().setJavaScriptEnabled(true);
             webView1.getSettings().setSupportZoom(true);
             webView1.getSettings().setBuiltInZoomControls(true);
             webView1.setWebViewClient(new WebViewClient() {
                    @Override
                    public void onPageFinished(WebView view, String url) {
                           if (pd.isShowing() && pd != null) {
                                 pd.dismiss();
                           }
                    }
             });
             webView1.loadUrl("https://www.google.co.in/");
       }
}


Ø  Create main.xml in res/layout.


main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>


Ø  Add Permission in AndroidManifest.xml.


<uses-permission android:name="android.permission.INTERNET" />




WebView Demo

Ø  Create MainActivity.java class in src/package.


MainActivity.java


import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends Activity {

       private WebView webView1;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);

             webView1 = (WebView) findViewById(R.id.webView1);
             webView1.loadUrl("https://www.google.co.in/");
       }
}


Ø  Create main.xml in res/layout.


main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>


Ø  Add Permission in AndroidManifest.xml.


<uses-permission android:name="android.permission.INTERNET" />



Thursday, August 28, 2014

SharedPreferences

SessionManagement.java

import java.util.HashMap;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class SessionManagement {
       SharedPreferences pref;

       Editor editor;

       Context _context;

       int PRIVATE_MODE = 0;

       private static final String PREF_NAME = "SharedPreferences_Name";

       private static final String IS_LOGIN = "IsLoggedIn";

       public static final String KEY_UserName = "UserName";
       public static final String KEY_Password = "Password";

       @SuppressLint("CommitPrefEdits")
       public SessionManagement(Context context) {
             this._context = context;
             pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
             editor = pref.edit();
       }

       /**
        * Create login session
        * */
       public void createLoginSession(String UserName, String Password) {

             editor.putBoolean(IS_LOGIN, true);

             editor.putString(KEY_UserName, UserName);
             editor.putString(KEY_Password, Password);

             editor.commit();
       }

       public void checkLogin() {

             if (!this.isLoggedIn()) {

                    Intent i = new Intent(_context, MainActivity.class);

                    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    _context.startActivity(i);
             }

       }

       public HashMap<String, String> getUserDetails() {
             HashMap<String, String> user = new HashMap<String, String>();

             user.put(KEY_UserName, pref.getString(KEY_UserName, null));
             user.put(KEY_Password, pref.getString(KEY_Password, null));

             return user;
       }

       public void logoutUser() {

             editor.clear();
             editor.commit();

             Intent intent;

             intent = new Intent(_context, MainActivity.class);

             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             _context.startActivity(intent);
       }

       public boolean isLoggedIn() {
             return pref.getBoolean(IS_LOGIN, false);
       }
}


MainActivity.java

import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

       private TextView txtMsg;
       private EditText edtName, edtPassword;
       private Button BtnLogin, BtnLogout;
       public SessionManagement session;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);

             session = new SessionManagement(getApplicationContext());

             txtMsg = (TextView) findViewById(R.id.txtMsg);
             edtName = (EditText) findViewById(R.id.edtName);
             edtPassword = (EditText) findViewById(R.id.edtPassword);
             BtnLogin = (Button) findViewById(R.id.BtnLogin);
             BtnLogout = (Button) findViewById(R.id.BtnLogout);

             BtnLogin.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                           session.createLoginSession(edtName.getText().toString(),
                                        edtName.getText().toString());

                           BtnLogout.setVisibility(View.VISIBLE);
                           BtnLogin.setVisibility(View.GONE);
                           edtName.setVisibility(View.GONE);
                           edtPassword.setVisibility(View.GONE);

                           session.checkLogin();

                           // get user data from session
                           HashMap<String, String> user = session.getUserDetails();
                           txtMsg.setText(user.get(SessionManagement.KEY_UserName));
                    }
             });

             BtnLogout.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                           session.logoutUser();
                    }
             });
       }
}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="1.5dp" >

        <TextView
            android:id="@+id/txtMsg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:padding="3dp"
            android:text="@string/Hello"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/edtName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="1.5dp"
            android:ems="10"
            android:hint="@string/Name" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/edtPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="1.5dp"
            android:ems="10"
            android:hint="@string/Password"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/BtnLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="1.5dp"
            android:text="@string/Login" />

        <Button
            android:id="@+id/BtnLogout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="1.5dp"
            android:text="@string/Logout"
            android:visibility="gone" />
    </LinearLayout>

</ScrollView>


strings.xml

<resources>

    <string name="app_name">SharedPreferences</string>
    <string name="Logout">Logout</string>
    <string name="Login">Login</string>
    <string name="Name">Name</string>
    <string name="Hello">Hello</string>
    <string name="Password">Password</string>


</resources>