Wednesday, 26 August 2015

Android Programming Tutorials 14 : ContentProvider 2 In Android

Application II: To Retrieve The Data From Applicatoin I

In The Application II we are going to retrive the data which we store in the Application I, Let Go...

Create Android Application:
  • ·      File >> New >> Android Application
    ·         Enter Project name: ContentProviderApp2
    ·         Package: com.ambilpursunil.newapp
    ·         Keep other defaullt selections, click Next until you reach Finish


1.Simply Copy and Past the Code which is display below in the    MainActivity.java

package com.example.contentresolvertogetdata;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {

            static final Uri CONTENT_URL = Uri.parse("content://com.ambilpursunil.newapp.ContentResolver/cpcontacts");
            TextView contactsTextView = null;
            EditText deleteIDEditText, idLookUpEditText, addNameEditText;
            ContentResolver resolver;
           
    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          resolver = getContentResolver();
 contactsTextView = (TextView) findViewById(R.id.contactsTextView);
 deleteIDEditText = (EditText) findViewById(R.id.deleteIDEditText);
 idLookUpEditText = (EditText) findViewById(R.id.idLookupEditText);
 addNameEditText = (EditText) findViewById(R.id.addNameEditText);
          getContacts();
          }
   
    public void getContacts(){
            String[] projection = new String[]{"id", "name"};
Cursor c = resolver.query(CONTENT_URL, projection, null, null, null);
            String contactList = "";
            if(c.moveToFirst()){
            do{
            String id = c.getString(c.getColumnIndex("id"));
            String name = c.getString(c.getColumnIndex("name"));
            contactList = contactList + id + " : " + name + "\n";
            }while(c.moveToNext());
            }
            contactsTextView.setText(contactList);
           }
 public void deleteContact(View v){
          String idToDelete = deleteIDEditText.getText().toString();
          long idDeleted = resolver.delete(CONTENT_URL, "id = ?", new String[]                       {idToDelete});
          getContacts();
          }
public void lookupContact(View v){
         String idToFind = idLookUpEditText.getText().toString();
         String[] projection = {"id", "name"};
Cursor c = resolver.query(CONTENT_URL, projection, "id = ? ", new String[]                       {idToFind}, null);
         String contact = " ";
         if(c.moveToFirst()){
         String id = c.getString(c.getColumnIndex("id"));
         String name = c.getString(c.getColumnIndex("name"));
         contact = contact + id + " : " + name + "\n";
         }else{
         Toast.makeText(this, "Contact Not Found", Toast.LENGTH_LONG).show();
         }
         contactsTextView.setText(contact);
         }
   
    public void addContact(View v){
         String nameToAdd = addNameEditText.getText().toString();
         ContentValues values = new ContentValues();
         values.put("name", nameToAdd);
         resolver.insert(CONTENT_URL, values);          
         getContacts();
         }
   public void showContacts(View v){
      getContacts();
    }
}

2.Simple Copy and Past the below code:  actvitiy_main.xml

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

    <Button
        android:id="@+id/btnToRetreive"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"
        android:text="Show Contacts"
        android:onClick="showContacts" />

    <EditText
        android:id="@+id/deleteIDEditText"
        android:layout_width="150dp"
        android:inputType="number"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/btnToRetreive"
        android:layout_marginTop="15dp"
        android:ems="10"
        android:hint="ID To Delete" >
    </EditText>
   
   
    <EditText
        android:id="@+id/idLookupEditText"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/btnToRetreive"
        android:layout_marginTop="76dp"
        android:ems="10"
        android:hint="ID to Find" >
    </EditText>

    <Button
        android:id="@+id/deleteIDButton"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/findContactButton"
        android:layout_alignTop="@+id/deleteIDEditText"
        android:onClick="deleteContact"
        android:text="Delete ID" />

    <Button
        android:id="@+id/findContactButton"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/idLookupEditText"
        android:layout_alignBottom="@+id/idLookupEditText"
        android:layout_alignLeft="@+id/addContactButton"
        android:onClick="lookupContact"
        android:text="Find Contact" />

    <Button
        android:id="@+id/addContactButton"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/addNameEditText"
        android:layout_marginRight="16dp"
        android:onClick="addContact"
        android:text="Add Contact" />

    <EditText
        android:id="@+id/addNameEditText"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/findContactButton"
        android:layout_marginTop="28dp"
        android:ems="10"
        android:hint="Name to Add" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/contactsTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/addContactButton"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="15dp"
        android:text="Contacts" />

</RelativeLayout>

3.Copy and past the code for  manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.contentresolvertogetdata"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


4.Right click on the project and Run As-->Android Application


OutPut:

Once Activity is launched the you will see the show contacts and three edit texts with three button i.e..Delete ID, FindContact, Add Contact and below a text view there you can see the data which you store using Application I 

That data can be deleted  by enter the  Id or name and click on delect contact button like wise finding contact and add contact.

Stay Tune For Next Tutorial...  In Android:


No comments:

Post a Comment