کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش دیتابیس SQLite اندروید

 

clip_image001

دوره آموزش برنامه نویسی اندروید

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

 

آموزش پایگاه داده ی SQLite  اندروید

SQLite یک پایگاه داده ی opensource SQL می باشد که داده را برای یک فایل متن روی یک دستگاه ذخیره می کند. اندروید با اجرای پایگاه داده ی SQLite داخلی وارد می شود.

SQLite همه ی ویژگی های ارتباطی پایگاه داده را پشتیبانی می کند. برای دستیابی به این پایگاه داده نیاز نیست هیچگونه اتصالی از قبیل JDBC، ODBC و غیره برای آن برقرار کنید.

پایگاه داده Package

مهم ترین پکیج android.database.sqlite  می باشد که شامل گروه هایی برای سازماندهی پایگاه داده ی خود شما می شود.

پایگاه داده ایجاد

برای ایجاد پایگاه داده کافیست روش openOrCreateDatabase را با نام پایگاه داده ی خود و سبک پارامتر، فرا بخوانید. این روش یک نمونه از پایگاه داده ی SQLite  را گزارش می دهد که باید در آبجکت خودتان آن را دریافت کنید. ترکیب آن مانند زیر می باشد.

SQLiteDatabse mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);‎‎

 

علاوه بر این عملکردهای دیگری در پکیج پایگاه داده وجود دارند که این کار را انجام می دهند. لیست آنها در زیر ارائه شده اند.

 

ردیف

متد ها و توضیحات

1

openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags, DatabaseErrorHandler errorHandler)

این روش پایگاه داده ی موجود را با سبک پرچم مناسب باز می کند. سبک های متداول می توانند OPEN_READWRITE OPEN_READONLY  باشند.

2

openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)

این روش در امر باز کردن پایگاه داده ی موجود شبیه به روش بالاست، اما هیچ بررسی کننده ای را برای بررسی خطاهای مربوط به پایگاه داده معرفی نمی کند.

3

openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)

این روش نه تنها پایگاه داده را باز می کند، بلکه اگر پایگاه داده ای وجود نداشته باشد، ایجاد می کند. این روش معادل روش openDatabase  می باشد.

4

openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)

این روش شبیه به روش بالا می باشد اما فایل آبجکت را به عنوان یک مسیر می گیرد و نه به عنوان یک رشته. این روش معادل روش file.getPath()  می باشد.

 

پایگاه داده Insertion

می توانیم یک جدول ایجاد کنیم و یا با استفاده از روش execSQL تعریف شده در گروه SQLiteDatabase ، داده ها را وارد جدول کنیم. ترکیب آن را می توانید در زیر مشاهده کنید.

mydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);");
        mydatabase.execSQL(
"INSERT INTO TutorialsPoint VALUES('admin','admin');");

 

این ترکیب مقادیری را وارد جدول ما در پایگاه داده می کند. وش دیگری که همین کار را انجام می دهد اما برای انجام دارای پارامترهای بیشتری می باشد، در زیر ارائه شده است.

ردیف

متد ها و توضیحات

1

execSQL(String sql, Object[] bindArgs)

این روش نه تنها داده وارد می کند، بلکه با استفاده از استدلال های مبهم، برای آپدیت کردن و یا تغییر داده های موجود در پایگاه داده اسنفاده می شود.

 

پایگاه داده fetching
ما می توانیم با استفاده از یک آبجکت از گروه Cursor، هرچیزی را بازیابی کنیم.  ما روشی از این گروه با نام rawQuery را فرا می خوانیم و این روش مجموعه ای از نتایج با cursor و اشاره به جدول، ارائه می دهد. ما می توانیم cursor
را فوروارد کرده و داده را بازیابی کنیم.

Cursor resultSet = mydatbase.rawQuery("Select * from TutorialsPoint",null);
        resultSet.moveToFirst();
        String username = resultSet.getString(
1);
        String password = resultSet.getString(
2
);

 

عملکردهای دیگری در گروه Cursor وجود دارند که به ما اجازه می دهند تا به طور موثر داده را بازیابی کنیم. این روش ها عبارتند از

 ردیف

 

متد ها وتوضیحات

1

getColumnCount()

این روش تعداد کل ستون های یک جدول را گزارش می دهد.

2

getColumnIndex(String columnName)

این روش شاخص یک ستون را با مشخص کردن نام ستون گزارش می دهد.

3

getColumnName(int columnIndex) 


این روش با مشخص کردن شاخص ستون، نام ستون را گزارش می دهد.

4

getColumnNames()

این روش ردیفی از نامه همه ی ستون های جدول ارائه می دهد.

5

getCount()

این روش تعداد ردیف ها را در مکان نما گزارش می دهد.

6

getPosition()

این روش موقعیت مکان نما را در جدول گزارش می دهد.

7

isClosed()

این روش اگر مکان نما بسته شده باشدtrue، و در غیر این صورت false را گزارش می دهد.

 

پایگاه داده گروه کمک کننده

برای سازماندهی همه ی عملیات مربوط به پایگاه داده، یک گروه کمک کننده به نام SQLiteOpenHelper ارائه شده است. این گروه به طور خودکار ایجاد و به روزرسانی پایگاه داده را سازماندهی می کند. ترکیب آن به شکل زیر می باشد.

public class DBHelper extends SQLiteOpenHelper {
          
public DBHelper(){
             
super(context,DATABASE_NAME,null,1);
           }
          
public void onCreate(SQLiteDatabase db) {}
          
public void onUpgrade(SQLiteDatabase database, int oldVersion, int
newVersion) {}
        }

 

مثال

در اینجا مثالی را می بینید که استفاده از پایگاه داده ی SQLite را توضیح می دهد. این مثال یک برنامه ی پایه برای تماس ایجاد می کند که امکان وارد کردن مورد، حذف مورد و یا تغییر شکل تماس ها را فراهم می کند.

برای آزمایش این مثال باید آن را روی دستگاهی اجرا کنید که در آن دوربین پشتیبانی می شود.

مراحل

توضیحات

1

برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان AddressBook  تحت بسته ی com.example.addressbook نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.

2

فایل src/MainActivity.java را برای گرفتن مرجع همه ی مولفه های XML تغییر دهید و تماس ها در لیست ویوقرار دهید.

3

یک src/DBHelper.java جدید ایجاد کنید که کار پایگاه داده را مدیریت خواهد کرد.

4

یک فعالیت جدید با عنوان DisplayContact.java ایجاد کنید که تماس را روی صفحه نمایش خواهد داد.

5

 res/layout/activity_main را برای افزودن مولفه های XML مربوطه تغییر دهید.

6

res/layout/activity_display_contact.xml را برای افزودن مولفه های XML مربوطه تغییر دهید.

7

 res/values/string.xml را برای افزودن مولفه های رشته ی لازم تغییر دهید.

8

res/menu/display_contact.xml را برای افزودن مولفه های منوی لازم تغییر دهید.

9

یک منوی جدید با عنوان res/menu/mainmenu.xml برای افزودن گزینه insert contact ایجاد کنید.

10

برنامه را اجرا کنید و یک دستگاه اجرایی اندروید انتخاب کرده و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.

 

در زیر محتوای فایل تغییر یافته ی فعالیت اصلی را مشاهده می کنید.

src/com.example.addressbook/MainActivity.java. 
       
package com.example.addressbook;
       
import java.util.ArrayList;
       
import android.os.Bundle;
       
import android.app.Activity;
       
import android.content.Intent;
       
import android.view.KeyEvent;
       
import android.view.Menu;
       
import android.view.MenuItem;
       
import android.view.View;
       
import android.widget.AdapterView;
       
import android.widget.AdapterView.OnItemClickListener;
       
import android.widget.ArrayAdapter;
       
import android.widget.ListView;
public class MainActivity extends Activity {
          
public final static String EXTRA_MESSAGE = ‎‎"com.example.AddressBook.MESSAGE";
          
private ListView obj;
           DBHelper
mydb;
           @Override
          
protected void onCreate(Bundle savedInstanceState) {
                     
super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
                     
mydb = new DBHelper(this);
                      ArrayList array_list =
mydb.getAllCotacts();
                      ArrayAdapter arrayAdapter =     
                     
new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list);
                     
//adding it to the list view.
               
      obj = (ListView)findViewById(R.id.listView1);
                     
obj.setAdapter(arrayAdapter);
                     
obj.setOnItemClickListener(new OnItemClickListener(){
                             @Override
                            
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    
long arg3) {
                                        
// TODO Auto-generated method stub
                               
         int id_To_Search = arg2 + 1;
                                         Bundle dataBundle =
new Bundle();
                                         dataBundle.putInt(
"id", id_To_Search);
                                         Intent intent =
new Intent(getApplicationContext(),com.example.addressbook.DisplayContact.class);
                                         intent.putExtras(dataBundle);
                                         startActivity(intent);
                                     }
                                     });
                   }
                   @Override
          
public boolean onCreateOptionsMenu(Menu menu) {
                     
// Inflate the menu; this adds items to the action bar if it is present.
               
      getMenuInflater().inflate(R.menu.mainmenu, menu);
                     
return true;
                      }
                   @Override
                  
public boolean onOptionsItemSelected(MenuItem item)
                   {
                     
super.onOptionsItemSelected(item);
                     
switch(item.getItemId())
                      {
                                
case R.id.item1:
                                            Bundle dataBundle =
new Bundle();
                                            dataBundle.putInt(
"id", 0);
                                            Intent intent =
new Intent(getApplicationContext(),com.example.addressbook.DisplayContact.class);
                                            intent.putExtras(dataBundle);
                                            startActivity(intent);
                                           
return true;
                                
default:
                                           
return super.onOptionsItemSelected(item);
                               }
                   }
                  
public boolean onKeyDown(int keycode, KeyEvent event) {
                     
if (keycode == KeyEvent.KEYCODE_BACK) {
                                 moveTaskToBack(
true);
                              }
                     
return super.onKeyDown(keycode, event);
                   }
                }

 

در ادامه محتوای تغییریافته ی فعالیت نمایش تماس را می بینید.

src/com.example.addressbook/DisplayContact.java
       
package com.example.addressbook;
       
import android.os.Bundle;
       
import android.app.Activity;
       
import android.app.AlertDialog;
       
import android.content.DialogInterface;
       
import android.content.Intent;
       
import android.database.Cursor;
       
import android.view.Menu;
       
import android.view.MenuItem;
       
import android.view.View;
       
import android.widget.Button;
       
import android.widget.TextView;
       
import android.widget.Toast;
public class DisplayContact extends Activity {
          
int from_Where_I_Am_Coming = 0;
          
private DBHelper mydb ;
           TextView
name ;
           TextView
phone;
           TextView
email;
           TextView
street;
           TextView
place;
          
int id_To_Update = 0;
           @Override
          
protected void onCreate(Bundle savedInstanceState) {
                     
super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_display_contact);
                     
name = (TextView) findViewById(R.id.editTextName);
                     
phone = (TextView) findViewById(R.id.editTextPhone);
                     
email = (TextView) findViewById(R.id.editTextStreet);
                     
street = (TextView) findViewById(R.id.editTextEmail);
                     
place = (TextView) findViewById(R.id.editTextCity);
                     
mydb = new DBHelper(this);
                      Bundle extras = getIntent().getExtras();
                     
if(extras !=null)
                      {
                                
int Value = extras.getInt("id");
                                
if(Value>0){
                                           
//means this is the view part not the add contact part.
                               
            Cursor rs = mydb.getData(Value);
                                           
id_To_Update = Value;
                                            rs.moveToFirst();
                                            String nam = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_NAME))‎‎;
                                            String phon = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_PHONE)‎‎);
                                            String emai = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_EMAIL)‎‎);
                                            String stree = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_STREET));
                                            String plac = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_CITY))‎‎;
                                           
if (!rs.isClosed())
                                            {
                                                       rs.close();
                                                    }
                                            Button b = (Button)findViewById(R.id.button1);
                                            b.setVisibility(View.INVISIBLE);
                                           
name.setText((CharSequence)nam);
                                           
name.setFocusable(false);
                                           
name.setClickable(false);
                                           
phone.setText((CharSequence)phon);
                                           
phone.setFocusable(false);
                                           
phone.setClickable(false);
                                           
email.setText((CharSequence)emai);
                                           
email.setFocusable(false);
                                           
email.setClickable(false);
                                           
street.setText((CharSequence)stree);
                                           
street.setFocusable(false);
                                           
street.setClickable(false);
                                           
place.setText((CharSequence)plac);
                                           
place.setFocusable(false);
                                           
place.setClickable(false);
                                           }
                              }
                   }
                   @Override
          
public boolean onCreateOptionsMenu(Menu menu) {
                     
// Inflate the menu; this adds items to the action bar if it is present.
               
      Bundle extras = getIntent().getExtras();
                     
if(extras !=null)
                      {
                                
int Value = extras.getInt("id");
                                
if(Value>0){
                                            getMenuInflater().inflate(R.menu.display_contact, menu);
                                         }
                                
else{
                                            getMenuInflater().inflate(R.menu.main, menu);
                                         }
                              }
                     
return true;
                   }
                  
public boolean onOptionsItemSelected(MenuItem item)
                   {
                     
super.onOptionsItemSelected(item);
                     
switch(item.getItemId())
                   {
                             
case R.id.Edit_Contact:
                                      Button b = (Button)findViewById(R.id.button1);
                                      b.setVisibility(View.VISIBLE);
                                     
name.setEnabled(true);
                                     
name.setFocusableInTouchMode(true);
                                     
name.setClickable(true);
                                     
phone.setEnabled(true);
                                     
phone.setFocusableInTouchMode(true);
                                     
phone.setClickable(true);
                                     
email.setEnabled(true);
                                     
email.setFocusableInTouchMode(true);
                                     
email.setClickable(true);
                                     
street.setEnabled(true);
                                     
street.setFocusableInTouchMode(true);
                                     
street.setClickable(true);
                                     
place.setEnabled(true);
                                     
place.setFocusableInTouchMode(true);
                                     
place.setClickable(true);
                                     
return true;
                             
case R.id.Delete_Contact:
                                      AlertDialog.Builder builder =
new AlertDialog.Builder(this);
                                      builder.setMessage(R.string.deleteContact)
                                    .setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
                                        
public void onClick(DialogInterface dialog, int id) {
                                                   
mydb.deleteContact(id_To_Update);
                                                    Toast.makeText(getApplicationContext(),
"Deleted Successfully", Toast.LENGTH_SHORT).show(); 
                                                    Intent intent =
new Intent(getApplicationContext(),com.example.addressbook.MainActivity.class);
                                                    startActivity(intent);
                                                 }
                                      })
                            .setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {
                                        
public void onClick(DialogInterface dialog, int id) {
                                                   
// User cancelled the dialog
                                       
         }
                                      });
                              AlertDialog d = builder.create();
                              d.setTitle(
"Are you sure");
                              d.show();
                             
return true;
                             
default:
                                     
return super.onOptionsItemSelected(item);
                              }
                   }
                  
public void run(View view)
                   {
                      Bundle extras = getIntent().getExtras();
                     
if(extras !=null)
                      {
                                
int Value = extras.getInt("id");
                                
if(Value>0){
                                           
if(mydb.updateContact(id_To_Update,name.getText().toString(), phone.getText().toString(), email.getText().toString(), street.getText().toString(), place.getText().toString())){
                                                       Toast.makeText(getApplicationContext(), ‎‎
"Updated", Toast.LENGTH_SHORT).show();
                                                       Intent intent =
new Intent(getApplicationContext(),com.example.addressbook.MainActivity.class);
                                                       startActivity(intent);
                                                     }
                                           
else{
                                                       Toast.makeText(getApplicationContext(),
"not Updated", Toast.LENGTH_SHORT).show();
                                                    }
                                }
                                
else{
                                           
if(mydb.insertContact(name.getText().toString(), phone.getText().toString(), email.getText().toString(), street.getText().toString(), place.getText().toString())){
                                                       Toast.makeText(getApplicationContext(),
"done", Toast.LENGTH_SHORT).show();
                                                    }
                                           
else{
                                                       Toast.makeText(getApplicationContext(),
"not done", Toast.LENGTH_SHORT).show();
                                                    }
                                            Intent intent =
new Intent(getApplicationContext(),com.example.addressbook.MainActivity.class);
                                            startActivity(intent);
                                            }
                              }
                   }
                }

در اینجا محتوای گروه پایگاه داده ی src/com.example.addressbook/DBHelper.java می باشد.

package com.example.addressbook;
       
import java.util.ArrayList;
       
import java.util.HashMap;
       
import java.util.Hashtable;
       
import android.content.ContentValues;
       
import android.content.Context;
       
import android.database.Cursor;
       
import android.database.DatabaseUtils;
       
import android.database.sqlite.SQLiteOpenHelper;
       
import android.database.sqlite.SQLiteDatabase;
public class DBHelper extends SQLiteOpenHelper {
          
public static final String DATABASE_NAME = "MyDBName.db";
          
public static final String CONTACTS_TABLE_NAME = ‎‎"contacts";
          
public static final String CONTACTS_COLUMN_ID = "id";
          
public static final String CONTACTS_COLUMN_NAME = "name";
          
public static final String CONTACTS_COLUMN_EMAIL = "email";
          
public static final String CONTACTS_COLUMN_STREET = ‎‎"street";
          
public static final String CONTACTS_COLUMN_CITY = "place";
          
public static final String CONTACTS_COLUMN_PHONE = "phone";
          
private HashMap hp;
          
public DBHelper(Context context)
           {
             
super(context, DATABASE_NAME , null, 1);
           }
           @Override
          
public void onCreate(SQLiteDatabase db) {
                     
// TODO Auto-generated method stub
               
      db.execSQL(
                             
"create table contacts " +
                             
"(id integer primary key, name text,phone text,email text, street text,place text)"
                              );
                   }
                   @Override
          
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                     
// TODO Auto-generated method stub
               
      db.execSQL("DROP TABLE IF EXISTS contacts");
                      onCreate(db);
                   }
                  
public boolean insertContact  (String name, String phone, String email, String street,String place)
                   {
                      SQLiteDatabase db =
this.getWritableDatabase();
                      ContentValues contentValues =
new ContentValues();
                      contentValues.put(
"name", name);
                      contentValues.put(
"phone", phone);
                      contentValues.put(
"email", email);
                      contentValues.put(
"street", street);
                      contentValues.put(
"place", place);
                      db.insert(
"contacts", null, contentValues);
                     
return true;
                   }
                  
public Cursor getData(int id){
                      SQLiteDatabase db =
this.getReadableDatabase();
                      Cursor res =  db.rawQuery(
"select * from contacts where id="+id+"", null );
                     
return res;
                   }
                  
public int numberOfRows(){
                      SQLiteDatabase db =
this.getReadableDatabase();
                     
int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME);
                     
return numRows;
                   }
                  
public boolean updateContact (Integer id, String name, String phone, String email, String street,String place)
                   {
                      SQLiteDatabase db =
this.getWritableDatabase();
                      ContentValues contentValues =
new ContentValues();
                      contentValues.put(
"name", name);
                      contentValues.put(
"phone", phone);
                      contentValues.put(
"email", email);
                      contentValues.put(
"street", street);
                      contentValues.put(
"place", place);
                      db.update(
"contacts", contentValues, "id = ? ", new String[] { Integer.toString(id) } );
                     
return true;
                   }
                  
public Integer deleteContact (Integer id)
                   {
                      SQLiteDatabase db =
this.getWritableDatabase();
                     
return db.delete("contacts",
                             
"id = ? ",
                             
new String[] { Integer.toString(id) });
                   }
                  
public ArrayList getAllCotacts()
                   {
                      ArrayList array_list =
new ArrayList();
                     
//hp = new HashMap();
               
      SQLiteDatabase db = this.getReadableDatabase();
                      Cursor res =  db.rawQuery(
"select * from contacts", null );
                      res.moveToFirst();
                     
while(res.isAfterLast() == false){
                              array_list.add(res.getString(res.getColumnIndex(
CONTACTS_COLUMN_NAME)));
                              res.moveToNext();
                              }
                  
return array_list;
                   }
                }

Following is the content of the res/layout/activity_main.xml

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"

                 xmlns:tools="http://schemas.android.com/tools"

                 android:layout_width="match_parent"

                 android:layout_height="match_parent"

                 android:paddingbottom="@dimen/activity_vertical_margin"

                 android:paddingleft="@dimen/activity_horizontal_margin"

                 android:paddingright="@dimen/activity_horizontal_margin"

                 android:paddingtop="@dimen/activity_vertical_margin"

                 tools:context=".MainActivity">

   

        <listview android:id="@+id/listView1"

                    android:layout_width="match_parent"

                    android:layout_height="wrap_content"

                    android:layout_centerhorizontal="true"

                    android:layout_centervertical="true">

       

            </ListView>‎‎

</relativelayout>

در اینجا محتوای res/layout/activity_display_contact.xml را می بینید.

<scrollview xmlns:android="http://schemas.android.com/apk/res/android"

             xmlns:tools="http://schemas.android.com/tools"

             android:id="@+id/scrollView1"

             android:layout_width="match_parent"

             android:layout_height="wrap_content"

             tools:context=".DisplayContact">

   

 

    <relativelayout android:layout_width="match_parent"

                      android:layout_height="370dp"

                      android:paddingbottom="@dimen/activity_vertical_margin"

                      android:paddingleft="@dimen/activity_horizontal_margin"

                      android:paddingright="@dimen/activity_horizontal_margin"

                      android:paddingtop="@dimen/activity_vertical_margin"

                      >

       

 

           <edittext android:id="@+id/editTextName"

                       android:layout_width="wrap_content"

                       android:layout_height="wrap_content"

                       android:layout_alignparentleft="true"

                       android:layout_margintop="5dp"

                       android:layout_marginleft="82dp"

                       android:ems="10"

                       android:inputtype="text">

           

               </EditText>

 

               <edittext android:id="@+id/editTextEmail"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignleft="@+id/editTextStreet"

                           android:layout_below="@+id/editTextStreet"

                           android:layout_margintop="22dp"

                           android:ems="10"

                           android:inputtype="textEmailAddress" />

 

               <textview android:id="@+id/textView1"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbottom="@+id/editTextName"

                           android:layout_alignparentleft="true"

                           android:text="@string/name"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <button android:id="@+id/button1"

                         android:layout_width="wrap_content"

                         android:layout_height="wrap_content"

                         android:layout_alignleft="@+id/editTextCity"

                         android:layout_alignparentbottom="true"

                         android:layout_marginbottom="28dp"

                         android:onclick="run"

                         android:text="@string/save" />

 

               <textview android:id="@+id/textView2"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbottom="@+id/editTextEmail"

                           android:layout_alignleft="@+id/textView1"

                           android:text="@string/email"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <textview android:id="@+id/textView5"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbottom="@+id/editTextPhone"

                           android:layout_alignleft="@+id/textView1"

                           android:text="@string/phone"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <textview android:id="@+id/textView4"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_above="@+id/editTextEmail"

                           android:layout_alignleft="@+id/textView5"

                           android:text="@string/street"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <edittext android:id="@+id/editTextCity"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignright="@+id/editTextName"

                           android:layout_below="@+id/editTextEmail"

                           android:layout_margintop="30dp"

                           android:ems="10"

                           android:inputtype="text" />

 

               <textview android:id="@+id/textView3"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbaseline="@+id/editTextCity"

                           android:layout_alignbottom="@+id/editTextCity"

                           android:layout_alignparentleft="true"

                           android:layout_toleftof="@+id/editTextEmail"

                           android:text="@string/country"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <edittext android:id="@+id/editTextStreet"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignleft="@+id/editTextName"

                           android:layout_below="@+id/editTextPhone"

                           android:ems="10"

                           android:inputtype="text">

               

 

                      <requestfocus />

                   </EditText>

 

                   <edittext android:id="@+id/editTextPhone"

                               android:layout_width="wrap_content"

                               android:layout_height="wrap_content"

                               android:layout_alignleft="@+id/editTextStreet"

                               android:layout_below="@+id/editTextName"

                               android:ems="10"

                               android:inputtype="phone|text" />

 

                </RelativeLayout>

               

</scrollview>

در ادامه محتوای res/value/string.xml را مشاهده می کنید.

‎‎‎‎‎‎<?xml version="1.0" encoding="utf-8" ?>

<resources>

   

       <string name="app_name">Address Book</string>

       <string name="action_settings">Settings</string>

       <string name="hello_world">Hello world!</string>

       <string name="Add_New">Add New</string>

       <string name="edit">Edit Contact</string>

       <string name="delete">Delete Contact</string>

       <string name="title_activity_display_contact">DisplayContact</string>

 

       <string name="name">Name</string>

       <string name="phone">Phone</string>

       <string name="email">Email</string>

       <string name="street">Street</string>

       <string name="country">City/State/Zip</string>

 

       <string name="save">Save Contact</string>

 

       <string name="deleteContact">Are you sure, you want to delete it.</string>

       <string name="yes">Yes</string>

       <string name="no">No</string>

</resources>

Following is the content of the res/menu/mainmenu.xml 

در زیر محتوای res/menu/mainmenu.xml می باشد.

<?xml version="1.0" encoding="utf-8" ?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">  

   

    <item android:id="@+id/item1"

          android:icon="@drawable/add"

          android:title="@string/Add_New"

          android:showasaction="ifRoom|withText">

            

    </item>

   

</menu>

 

Following is the content of the res/menu/display_contact.xml 

در زیر محتوای res/menu/display_contact.xml را مشاهده می کنید.

‎‎<menu xmlns:android="http://schemas.android.com/apk/res/android">

   

    <item android:id="@+id/Edit_Contact"

           android:orderincategory="100"

           android:title="@string/edit" />

   

    <item android:id="@+id/Delete_Contact"

           android:orderincategory="100"

           android:title="@string/delete" />

   

</menu>

 

و این پیش فرض AndroidManifest.xml از این پروژه می باشد.

<?xml version="1.0" encoding="utf-8" ?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

           package="com.example.addressbook"

           android:versioncode="1"

           android:versionname="1.0">

       <uses-sdk android:minsdkversion="8"

                  android:targetsdkversion="17" />

       <application android:allowbackup="true"

                      android:icon="@drawable/ic_launcher"

                      android:label="@string/app_name"

                      android:theme="@style/AppTheme">

       

              <activity android:name="com.example.addressbook.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>

                  <activity android:name="com.example.addressbook.DisplayContact"

                              android:label="@string/title_activity_display_contact">

               

                      </activity>

                   </application>

</manifest>

اجازه بدهید برنامه ی  Cameraشما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run  از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.

دستگاه موبایل خود را به عنوان یک گزینه انتخاب کرده و سپس آن را چک کنید که صفحه زیر را نمایش می دهد.

روی دکمه ی add در بالای صفحه گوشه ی سمت راست کلیک کنید تا یک کانتکت جدید اضافه کنید. پس از آن صفحه ی زیر نمایش داده خواهد شد.

و فیلدهای زیر نمایش داده خواهند شد. لطفا اطلاعات لازم را وارد کرده  و روی save contact کلیک کنید. که پس از آن شما به صفحه ی اصلی برخواهید گشت.

اکنون کانتکت شما اضافه شده، آن را لمس کنید تا بتوانید حذف یا ویرایش کنید، که صفحه ی زیر را به شما نمایش خواهد داد. اکنون از موبایل خود منو را انتخاب کنید که در آنجا دو گزینه وجود دارد.

Delete contact را انتخاب کنید، یک دیالوگ باکس نمایش داده خواهد شد که از شما در مورد حذف این کانتکت می پرسد، این صفحه مانند تصویر زیر خواهد بود.

Yes را از صفحه ی بالا انتخاب کنید که یک بیانیه نمایش داده می شود که اعلام می کند کانتکت با موفقیت حذف شده است، همانطور که در تصویر زیر می بینید.

برای اینکه ببینید پایگاه داده ی شما در کجا ایجاد شده، eclipse  خود را باز کرده و موبایل خود را متصل کنید. به گوشه ی راست رفته و DDMS را انتخاب کنید. حالا file explorer را براوس کنید. سپس فولدر /data/data/<your.package.name>/databases<database-name> را براوس کنید.

1394/07/27 19309 3044
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...