SQLite là một cơ sở dữ liệu SQL mã nguồn mở lưu trữ dữ liệu vào một tệp văn bản trên một thiết bị. Android đi kèm với việc xây dựng cơ sở dữ liệu SQLite được xây dựng.
SQLite hỗ trợ tất cả các tính năng cơ sở dữ liệu quan hệ. Để truy cập cơ sở dữ liệu này, bạn không cần phải thiết lập bất kỳ loại kết nối nào cho nó như JDBC, ODBC, v.v.
Cơ sở dữ liệu - Sáng tạo
Để tạo một cơ sở dữ liệu, bạn chỉ cần gọi phương thức này là openOrCreateDatabase với tên và chế độ cơ sở dữ liệu của bạn làm tham số.
Ngoài ra, còn có các chức năng khác có sẵn trong gói cơ sở dữ liệu, thực hiện công việc này. Chúng được liệt kê dưới đây
Điều này sẽ chèn một số giá trị vào bảng của chúng tôi trong cơ sở dữ liệu của chúng tôi. Một phương thức khác cũng thực hiện cùng một công việc nhưng có một số tham số bổ sung được đưa ra dưới đây
Chúng ta sẽ gọi một phương thức của lớp này gọi là rawQuery và nó sẽ trả về một resultset với con trỏ trỏ tới bảng. Chúng ta có thể di chuyển con trỏ về phía trước và lấy dữ liệu.
Có các hàm khác có sẵn trong lớp Con trỏ cho phép chúng tôi truy xuất dữ liệu một cách hiệu quả. Điều đó bao gồm
Đây là một ví dụ minh họa việc sử dụng Cơ sở dữ liệu SQLite. Nó tạo ra một ứng dụng danh bạ cơ bản cho phép chèn, xóa và sửa đổi các số liên lạc.
Để thử nghiệm với ví dụ này, bạn cần chạy trên thiết bị thực tế trên máy ảnh được hỗ trợ.
Sau đây là nội dung của MainActivity.java đã sửa đổi .
Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau đây
Bây giờ mở menu tùy chọn của bạn, nó sẽ hiển thị như hình dưới đây: Menu tùy chọn xuất hiện các địa điểm khác nhau trên các phiên bản khác nhau
Nhấp vào nút thêm của màn hình menu để thêm liên hệ mới. Nó sẽ hiển thị màn hình sau đây -
Nó sẽ hiển thị các trường sau đây. Vui lòng nhập thông tin được yêu cầu và nhấp vào lưu liên hệ. Nó sẽ đưa bạn trở lại màn hình chính.
Bây giờ lỗi liên hệ của chúng tôi đã được thêm vào. Để xem cơ sở dữ liệu của bạn được tạo ở đâu. Mở studio android của bạn, kết nối điện thoại di động của bạn.
SQLite hỗ trợ tất cả các tính năng cơ sở dữ liệu quan hệ. Để truy cập cơ sở dữ liệu này, bạn không cần phải thiết lập bất kỳ loại kết nối nào cho nó như JDBC, ODBC, v.v.
Cơ sở dữ liệu - Gói
Gói chính là android.database.sqlite chứa các lớp để quản lý cơ sở dữ liệu của riêng bạnCơ sở dữ liệu - Sáng tạo
![]() |
| Học lập trình Android |
Để tạo một cơ sở dữ liệu, bạn chỉ cần gọi phương thức này là openOrCreateDatabase với tên và chế độ cơ sở dữ liệu của bạn làm tham số.
Học lập trình Android. Nó trả về một cá thể của cơ sở dữ liệu SQLite mà bạn phải nhận trong cú pháp object.Its của riêng bạn được đưa ra dưới đây
SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);
| Sr.No | Phương thức & Mô tả |
|---|---|
| 1 | openDatabase (đường dẫn String, nhà máy SQLiteDatabase.CursorFactory, int flags, DatabaseErrorHandler errorHandler) Phương thức này chỉ mở cơ sở dữ liệu hiện có với chế độ cờ thích hợp. Chế độ cờ chung có thể là OPEN_READWRITE OPEN_READONLY |
| 2 | openDatabase (đường dẫn String, nhà máy SQLiteDatabase.CursorFactory, int flags) Nó tương tự như phương thức trên vì nó cũng mở cơ sở dữ liệu hiện có nhưng nó không định nghĩa bất kỳ trình xử lý nào để xử lý các lỗi của cơ sở dữ liệu |
| 3 | openOrCreateDatabase (đường dẫn String, nhà máy SQLiteDatabase.CursorFactory) Nó không chỉ mở ra mà còn tạo cơ sở dữ liệu nếu nó không tồn tại. Phương thức này tương đương với phương thức openDatabase. |
| 4 | openOrCreateDatabase (Tệp tệp, nhà máy SQLiteDatabase.CursorFactory) Phương thức này tương tự như phương thức trên nhưng nó lấy đối tượng File như một đường dẫn chứ không phải là một chuỗi. Nó tương đương với file.getPath () |
Cơ sở dữ liệu - Chèn
chúng ta có thể tạo bảng hoặc chèn dữ liệu vào bảng bằng phương thức execSQL được định nghĩa trong lớp SQLiteDatabase. Cú pháp của nó được đưa ra dưới đâymydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);");
mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES('admin','admin');");
Điều này sẽ chèn một số giá trị vào bảng của chúng tôi trong cơ sở dữ liệu của chúng tôi. Một phương thức khác cũng thực hiện cùng một công việc nhưng có một số tham số bổ sung được đưa ra dưới đây
| Sr.No | Phương thức & Mô tả |
|---|---|
| 1 | execSQL (String sql, Object [] bindArgs) Phương thức này không chỉ chèn dữ liệu mà còn được sử dụng để cập nhật hoặc sửa đổi dữ liệu hiện có trong cơ sở dữ liệu bằng cách sử dụng các đối số liên kết |
Cơ sở dữ liệu - Tìm nạp
Chúng ta có thể lấy bất cứ thứ gì từ cơ sở dữ liệu bằng cách sử dụng một đối tượng của lớp Cursor.Chúng ta sẽ gọi một phương thức của lớp này gọi là rawQuery và nó sẽ trả về một resultset với con trỏ trỏ tới bảng. Chúng ta có thể di chuyển con trỏ về phía trước và lấy dữ liệu.
Cursor resultSet = mydatbase.rawQuery("Select * from TutorialsPoint",null);
resultSet.moveToFirst();
String username = resultSet.getString(0);
String password = resultSet.getString(1);
| Sr.No | Phương thức & Mô tả |
|---|---|
| 1 | getColumnCount () Phương thức này trả về tổng số cột của bảng. |
| 2 | getColumnIndex (String columnName) Phương thức này trả về số chỉ mục của một cột bằng cách chỉ định tên cột |
| 3 | getColumnName (int columnIndex) Phương thức này trả về tên của cột bằng cách chỉ định chỉ mục của cột |
| 4 | getColumnNames () Phương thức này trả về mảng của tất cả các tên cột của bảng. |
| 5 | getCount () Phương thức này trả về tổng số hàng trong con trỏ |
| 6 | getPosition () Phương thức này trả về vị trí hiện tại của con trỏ trong bảng |
| 7 | isClosed () Phương thức này trả về true nếu con trỏ bị đóng và trả về false nếu không |
Cơ sở dữ liệu - Lớp trình trợ giúp
Để quản lý tất cả các hoạt động liên quan đến cơ sở dữ liệu, một lớp trợ giúp đã được đưa ra và được gọi là SQLiteOpenHelper. Nó tự động quản lý việc tạo và cập nhật cơ sở dữ liệu. Cú pháp của nó được đưa ra dưới đâypublic 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) {} }Thí dụ
Đây là một ví dụ minh họa việc sử dụng Cơ sở dữ liệu SQLite. Nó tạo ra một ứng dụng danh bạ cơ bản cho phép chèn, xóa và sửa đổi các số liên lạc.
Để thử nghiệm với ví dụ này, bạn cần chạy trên thiết bị thực tế trên máy ảnh được hỗ trợ.
| Các bước | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng Android studio để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication. |
| 2 | Sửa đổi tệp src / MainActivity.java để lấy tham chiếu của tất cả các thành phần XML và điền các liên hệ trên listView. |
| 3 | Tạo src / DBHelper.java mới sẽ quản lý công việc cơ sở dữ liệu |
| 4 | Tạo một Hoạt động mới dưới dạng DisplayContact.java sẽ hiển thị liên hệ trên màn hình |
| 5 | Sửa đổi res / layout / activity_main để thêm các thành phần XML tương ứng |
| 6 | Sửa đổi tệp res / layout / activity_display_contact.xml để thêm các thành phần XML tương ứng |
| 7 | Sửa đổi res / values / string.xml để thêm các thành phần chuỗi cần thiết |
| số 8 | Sửa đổi res / menu / display_contact.xml để thêm các thành phần menu cần thiết |
| 9 | Tạo một menu mới dưới dạng res / menu / mainmenu.xml để thêm tùy chọn chèn liên hệ |
| 10 | Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả. |
package com.example.sairamkrishna.myapplication; import android.content.Context; import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends ActionBarActivity { public final static String EXTRA_MESSAGE = "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); 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(),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.menu_main, 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(),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); } }Sau đây là nội dung sửa đổi của hoạt động liên hệ hiển thị DisplayContact.java
package com.example.sairamkrishna.myapplication; 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.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(),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(),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(),MainActivity.class); startActivity(intent); } } } }Sau đây là nội dung của lớp Database DBHelper.java
package com.example.sairamkrishna.myapplication; 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<String> getAllCotacts() { ArrayList<String> array_list = new ArrayList<String>(); //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; } }Sau đây là nội dung của res / layout / 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:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" android:text="Data Base" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials Point" android:id="@+id/textView2" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:textSize="35dp" android:textColor="#ff16ff01" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" android:src="@drawable/logo"/> <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/scrollView" android:layout_below="@+id/imageView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true"> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" > </ListView> </ScrollView> </RelativeLayout>Sau đây là nội dung của res / layout / activity_display_contact.xml
<?xml version="1.0" encoding="utf-8"?> <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>Sau đây là nội dung của 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>Sau đây là nội dung của res / menu / main_menu.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" > </item> </menu>Sau đây là nội dung của res / menu / display_contact.xml
<?xml version="1.0" encoding="utf-8"?> <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>Đây là tệp AndroidManifest.xml defualt của dự án này
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/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> <activity android:name=".DisplayContact"/> </application> </manifest>Hãy thử chạy ứng dụng của bạn. Tôi cho rằng bạn đã kết nối thiết bị Android Mobile thực tế với máy tính của mình. Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào Chạy biểu tượng từ thanh công cụ. Trước khi bắt đầu ứng dụng của bạn, Android studio sẽ hiển thị cửa sổ sau để chọn tùy chọn mà bạn muốn chạy ứng dụng Android của mình.
Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau đây
Bây giờ mở menu tùy chọn của bạn, nó sẽ hiển thị như hình dưới đây: Menu tùy chọn xuất hiện các địa điểm khác nhau trên các phiên bản khác nhau
Nhấp vào nút thêm của màn hình menu để thêm liên hệ mới. Nó sẽ hiển thị màn hình sau đây -
Nó sẽ hiển thị các trường sau đây. Vui lòng nhập thông tin được yêu cầu và nhấp vào lưu liên hệ. Nó sẽ đưa bạn trở lại màn hình chính.
Bây giờ lỗi liên hệ của chúng tôi đã được thêm vào. Để xem cơ sở dữ liệu của bạn được tạo ở đâu. Mở studio android của bạn, kết nối điện thoại di động của bạn.
Đi theo dõi công cụ / thiết bị android / android . Bây giờ duyệt tab tệp thám hiểm. Bây giờ duyệt thư mục này / data / data / <your.package.name> / databases <database-name>.

Không có nhận xét nào:
Đăng nhận xét