• Advertisement

Simple use of Shared Preference Android

Here is a very simple implementation of Shared Preferences in Android Development.

Step 1:   Create a Shared preferences object prefs from file “com.sagar.prefs”.

SharedPreferences prefs = getSharedPreferences(“com.sagar.prefs”, Context.MODE_PRIVATE );// this code is enough for creating the file and getting its object.

 

Step 2. Write some value in the shared preferences

copy this method in your code:

private void setPreferences(String key_str, String value_str){

           Editor editor = prefs.edit();
           editor.putString(key_str, value_str); 
           editor.commit();
}

and use this to save any value in shared preferences  setPreferences(“name”, “value”); // this will save the value for this name.

 

Step 3: Get data from shared preferences:

String str = prefs.getString(“name”, “d”);  // where d is the default value which will be return if there is no value for the given “name” in the shared preferences.

 

Android ListView with multiple String arrays using Simple Adapter

Here is a Simple and very Easy tutorial if you want to show more than two lines in a single list item.

Steps:

  1. Create 2 layouts in res/layout folder. “main.xml” and   “list_item.xml”
  2. Create a listview in main.xml                (code given below)
  3. Create two textview in list_item.xml      (code given below)
  4. Create MainActivity and set main.xml as its layout. (code given below)
  5. Run the application.

source belowSource code:

Continue reading

Android Expandable List Simple example

Android Expandable List Simple example

This is a very important view of Android and it is really complicated but here is a very simple example for the ExpandableListView.

  • Create new Android Project with package name  “com.sagar.expandablelistview.example”.
  • Create Main Activity “ExpandableListExample.java”.
  • You don’t need any layout.xml for this example.
  • Copy the code in your ExpandableListExample activity.

source belowSource code:

Continue reading

Google Cloud Messaging For Android (GCM) Simple Tutorial

Important: C2DM has been officially deprecated as of June 26, 2012.

It has been replaced by Google Cloud Messaging For Android (GCM)

This Tutorial will guide you how to create a sample simple application using the GCM functionality,

This demo will help you registering and unRegistering android device from GCM server

Getting your Sender ID

  • STEP 1.  Register Here .
  • STEP 2.  Click Create project. Your browser URL will change to something like:
    " https://code.google.com/apis/console/#project:4815162342 "

    Take note of the value after #project: (4815162342 in this example). This is your project ID, and it will be used later on as the GCM sender ID. This Id will be used by the Android Device while Registering for Push Notification.

  • STEP 3. Choose Service tab from the left side menu on the web page. and turn on ” Google Cloud Messaging for Android “
  • STEP 4. Go to API Access tab from the left menu of web page.

press Create new Server key and note down the generated key

 

CREATING APP FOR GCM

Continue reading

Android SQLite Database Connectivity Example with Source code

This Example explains the complete use of SQLITE database in android

  • Inserting Data into Database
  • Getting Data from Database
  • Showing Data into a Listview (Using Simple Adapter with multiple lines)
  • Deleting Data from Database
Check this video to see the working.

click here for Simple Database Example
source belowSource code:

Create a new Android Projects and create these files in your project.

  • code for main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff330044"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#77336588"
        android:text="Database Tutorial"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:background="#88555555"
        android:text="Name" />

    <EditText
        android:id="@+id/ed1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:maxLength="30"
        android:singleLine="true" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#88555555"
        android:text="Phone" />

    <EditText
        android:id="@+id/ed2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:maxLength="10"
        android:singleLine="true" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

        <Button
            android:id="@+id/submit_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Submit" />

        <Button
            android:id="@+id/refresh_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Refresh" />
    </LinearLayout>

    <ListView
        android:id="@+id/dblist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:cacheColorHint="#ff330044" >
    </ListView>

</LinearLayout>
  • Code for custom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/col1tv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#88444444"
        android:paddingLeft="10dp"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/col2tv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#88555555"
        android:gravity="right"
        android:paddingRight="10dp"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>
  • Code for DBclass.java
package fun.droiding.dbtutorial;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBclass {

	public static final String KEY_ROWID = "_id";
	public static final String KEY_COL1 = "col1";
	public static final String KEY_COL2 = "col2";

	private static final String DATABASE_NAME = "mydb";
	private static final String DATABASE_TABLE = "mytable";
	private static final int DATABASE_VERSION = 1;

	private final Context ourContext;
	private DbHelper dbh;
	private SQLiteDatabase odb;

	private static final String USER_MASTER_CREATE =
		"CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE+ "("
			+ KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
			+ KEY_COL1  + " VARCHAR(15) UNIQUE, " + KEY_COL2 + " VARCHAR(15) )";

	private static class DbHelper extends SQLiteOpenHelper {

		public DbHelper(Context context) {
			super(context, DATABASE_NAME, null, DATABASE_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			db.execSQL(USER_MASTER_CREATE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			// if DATABASE VERSION changes
			// Drop old tables and call super.onCreate()
		}
	}

	public DBclass(Context c) {
		ourContext = c;
		dbh = new DbHelper(ourContext);
	}

	public DBclass open() throws SQLException {
		odb = dbh.getWritableDatabase();
		return this;
	}

	public void close() {
		dbh.close();
	}

	public long insertmaster(String col1, String col2) throws SQLException{
		Log.d("", col1);
		Log.d("", col2);

		ContentValues IV = new ContentValues();

		IV.put(KEY_COL1, col1);
		IV.put(KEY_COL2, col2);

		return odb.insert(DATABASE_TABLE, null, IV);
		// returns a number >0 if inserting data is successful
	}

	public void updateRow(long rowID, String col1, String col2) {
		ContentValues values = new ContentValues();
		values.put(KEY_COL1, col1);
		values.put(KEY_COL2, col2);

		try {
			odb.update(DATABASE_TABLE, values, KEY_ROWID + "=" + rowID, null);
		} catch (Exception e) {
		}
	}

	public boolean delete() {
		return odb.delete(DATABASE_TABLE, null, null) > 0;
	}

	public Cursor getAllTitles() {
		// using simple SQL query
		return odb.rawQuery("select * from " + DATABASE_TABLE, null);
	}

	public Cursor getallCols(String id) throws SQLException {
		Cursor mCursor = odb.query(DATABASE_TABLE, new String[] { KEY_COL1,
				KEY_COL2 }, null, null, null, null, null);
		Log.e("getallcols zmv", "opening successfull");
		return mCursor;
	}

	public Cursor getColsById(String id) throws SQLException {
		Cursor mCursor = odb.query(DATABASE_TABLE, new String[] { KEY_COL1,
				KEY_COL2 }, KEY_ROWID + " = " + id, null, null, null, null);
		Log.e("getallcols zmv", "opening successfull");
		return mCursor;
	}
}
  • Code for Main.java
package fun.droiding.dbtutorial;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import android.app.Activity;
import android.database.Cursor;
import android.database.SQLException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {

	private ListView list_lv;
	private EditText col1_ed;
	private EditText col2_ed;
	private Button sub_btn;
	private Button ref_btn;
	private DBclass db;

	private ArrayList<String> collist_1;
	private ArrayList<String> collist_2;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		collist_1 = new ArrayList<String>();
		collist_2 = new ArrayList<String>();
		items();
		getData();
	}

	private void items() {
		sub_btn = (Button) findViewById(R.id.submit_btn);
		ref_btn = (Button) findViewById(R.id.refresh_btn);
		col1_ed = (EditText) findViewById(R.id.ed1);
		col2_ed = (EditText) findViewById(R.id.ed2);
		list_lv = (ListView) findViewById(R.id.dblist);

		ref_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				getData();
			}
		});

		sub_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				submitData();
			}
		});
	}

	protected void submitData() {
		String a = col1_ed.getText().toString();
		String b = col2_ed.getText().toString();

		db = new DBclass(this);
		long num;
		try {
			db.open();
			num = db.insertmaster(a, b);
			db.close();
		} catch (SQLException e) {
			num = -5;
		} finally {
			getData();
		}
		if (num > 0)
			Toast.makeText(this, "Row number: " + num, 2000).show();
		else if (num == -1)
			Toast.makeText(this, "Error Duplicate value", 4000).show();
		else
			Toast.makeText(this, "Error while inserting", 2000).show();
	}

	public void getData() {
		collist_1.clear();
		collist_2.clear();

		db = new DBclass(this);
		try {
			db.open();
			Cursor cur = db.getAllTitles();
			while (cur.moveToNext()) {
				String valueofcol1 = cur.getString(1);
				String valueofcol2 = cur.getString(2);
//				Log.e("---****---", "***********   col 1 = " + valueofcol1);
//				Log.e("---****---", "***********   col 2 = " + valueofcol2);

				collist_1.add(valueofcol1);
				collist_2.add(valueofcol2);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			db.close();
		}
		printList();
		setDataIntoList();
	}

	private void printList() {
		for (int i = 0; i < collist_1.size(); i++) {
			Log.e("***************",
					collist_1.get(i) + " --- " + collist_2.get(i));
		}
	}

	private void setDataIntoList() {

		// create the list item mapping
		String[] from = new String[] { "col_1", "col_2" };
		int[] to = new int[] { R.id.col1tv, R.id.col2tv };

		// prepare the list of all records
		List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
		for (int i = 0; i < collist_1.size(); i++) {
			HashMap<String, String> map = new HashMap<String, String>();
			map.put("col_1", collist_1.get(i));
			map.put("col_2", collist_2.get(i));
			fillMaps.add(map);
		}

		// fill in the grid_item layout
		SimpleAdapter adapter = new SimpleAdapter(this, fillMaps,
				R.layout.custom, from, to);
		list_lv.setAdapter(adapter);
	}
}