chào các bạn sau đây là 1 bài hướng dẫn tổng quát nhất và là một trong các cấp cao nhất mà các lập trình viên android cần phải biết, đó là cách xử lý lưu trữ và lấy dữ liệu theo mô hình client - server.
[img]data/attachments/16/16490-6e83caac0db1dbee96a26635c22917cb.jpg[/img]
1) mô hình client - server trong android:
- click vào đây để download source code demo trên android.
- click vào đây để download source coce php - server.
2) mô hình client - server trong android:
- client: là các máy khách hay ở đây chính là các thiết bị di động chạy hệ điều hành android.
- server: chính là database và một giao thức trung gian.
- giao thức trung gian (http): là một cầu nối trung gian để tiếp nhận yêu cầu và trả lại kết quả của thiết bị và database. hiện tại phổ biến nhất là sử dụng php.
3) một ví dụ đơn giản về mô hình client - server trong android:
- người dùng sử dụng 1 thiết bị android, chạy một ứng dụng nào đó.
- người dùng đăng ký 1 tài khoản trên thiết bị, và thông tin này được lưu trữ trên server.
- người dùng thực hiện việc đăng nhập - thiết bị sẽ gửi một yêu cầu đăng nhập với email và password lên server để kiểm tra nếu đúng thì chuyển qua chức năng nào đó như thông tin cá nhân ... nếu sai thì thông báo không thành công..
- người dùng sử dụng một thiết bị khác để đăng nhập và tất nhiên cũng sẽ đăng nhập được.
- trên thiết bị cũng sẽ có 1 database cục bộ lưu dữ thông tin người dùng vừa đăng nhập, và khi logout thì delete tất cả.
- và tất nhiên tất cả dữ liệu của người dùng đều được lưu trữ trên server.
4) hướng dẫn cài đặt:
- tải và cài đặt xampp để chạy server cục bộ localhost (cài theo đường dẫn mặc định nhé).
- khởi động xampp:
[img]data/attachments/16/16491-bf55b34d42687d076962e117cabcb3a6.jpg[/img]
- sau khi cài đặt thành công mở trình duyệt vào "http://localhost/phpmyadmin" để khởi tạo cơ sở dữ liêu sử dụng trong ứng dụng.
+ trên thanh menu ngang, chọn mục sql để khởi tạo database bằng câu lệnh sql dưới đây:
Mã nguồn PHP:
[color=#000000]
create database android_api[/color]
+ sau khi khởi tạo thành công, chọn click vào tên database vừa khởi tạo rồi tiếp tục chọn mục sql để khởi tạo table:
Mã nguồn PHP:
[color=#000000]
create table users[/color][color=#007700]( [/color][color=#0000bb]uid int[/color][color=#007700]([/color][color=#0000bb]11[/color][color=#007700]) [/color][color=#0000bb]primary key auto_increment[/color][color=#007700], [/color][color=#0000bb]unique_id varchar[/color][color=#007700]([/color][color=#0000bb]23[/color][color=#007700]) [/color][color=#0000bb]not null unique[/color][color=#007700], [/color][color=#0000bb]name varchar[/color][color=#007700]([/color][color=#0000bb]50[/color][color=#007700]) [/color][color=#0000bb]not null[/color][color=#007700], [/color][color=#0000bb]email varchar[/color][color=#007700]([/color][color=#0000bb]100[/color][color=#007700]) [/color][color=#0000bb]not null unique[/color][color=#007700], [/color][color=#0000bb]encrypted_password varchar[/color][color=#007700]([/color][color=#0000bb]80[/color][color=#007700]) [/color][color=#0000bb]not null[/color][color=#007700], [/color][color=#0000bb]salt varchar[/color][color=#007700]([/color][color=#0000bb]10[/color][color=#007700]) [/color][color=#0000bb]not null[/color][color=#007700], [/color][color=#0000bb]created_at datetime[/color][color=#007700], [/color][color=#0000bb]updated_at datetime null[/color][color=#007700]);[/color]
- sau khi khởi tạo thành công, các bạn download source php "android_login_api.rar" trong phần đính kèm bên dưới rồi giải nén, copy đưa vào thư mục "c:\xampp\htdocs" (thư mục mặc định cài xampp).
- vào trình duyệt nhập "http://localhost/android_login_api/" nếu trang hiển thị "access denied" nghĩa là phần server đã ok.
- do server là localhost nên trước mắt sẽ dùng máy ảo để test thôi. các bạn khởi động máy ảo download nốt project android "demoandroidloginserver" ở phía bên dưới và giải nén.
- trong eclipse => file => import project vừa giải nén.
- khởi động máy ảo và run ứng dụng xem thành tích
- cuối cùng đừng quên đọc code để hiểu rõ hơn về quy luật hoạt động của code.
5) hình ảnh ứng dụng demo:
[img]data/attachments/16/16502-3a753613732360cd445a87d12fdd9165.jpg[/img]
[img]data/attachments/16/16503-46f2c0aad3bdc221f9a99cee4c6dbdf2.jpg[/img]
[img]data/attachments/16/16504-1c5805c234a10263f573a492b10c48b2.jpg[/img]
6) video clip hướng dẫn:
- video clip hướng dẫn cài đặt:
- video kết quả chạy ứng dụng:
7) hướng dẫn code:
- androidmanifest.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.androidhive" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".dashboardactivity" > <intent-filter > <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <!-- login activity --> <activity android:label="login account" android:name=".loginactivity"></activity> <!-- register activity --> <activity android:label="register new account" android:name=".registeractivity"></activity> </application> <!-- allow to connect with internet --> <uses-permission android:name="android.permission.internet" /> </manifest>
- login.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<scrollview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <linearlayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dip" > <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginbottom="10dip" android:text="trang đăng nhập" android:gravity="center" android:textsize="25dip" android:textstyle="bold" /> <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="email user" /> <edittext android:id="@+id/loginemail" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="15dip" android:text="password" /> <edittext android:id="@+id/loginpassword" android:layout_width="fill_parent" android:layout_height="wrap_content" android:password="true" /> <textview android:id="@+id/login_error" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dip" android:textcolor="#e30000" android:textstyle="bold" /> <button android:id="@+id/btnlogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:text="đăng nhập" /> <button android:id="@+id/btndestination urltoregisterscreen" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="40dip" android: android:text="bạn chưa có tài khoản. đăng ký ngay!" android:textcolor="#21dbd4" android:textstyle="bold" /> </linearlayout> </scrollview>
- register.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<scrollview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <linearlayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dip" > <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginbottom="10dip" android:text="trang đăng ký user" android:textsize="25dip" android:gravity="center" android:textstyle="bold" /> <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="tên user:" /> <edittext android:id="@+id/registername" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="email user:" /> <edittext android:id="@+id/registeremail" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="15dip" android:text="password:" /> <edittext android:id="@+id/registerpassword" android:layout_width="fill_parent" android:layout_height="wrap_content" android:password="true" /> <textview android:id="@+id/register_error" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dip" android:textcolor="#e30000" android:textstyle="bold" /> <button android:id="@+id/btnregister" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:text="đăng ký" /> <button android:id="@+id/btndestination urltologinscreen" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="40dip" android: android:text="đã đăng ký thành công" android:textcolor="#21dbd4" android:textstyle="bold" /> </linearlayout> </scrollview>
- dashbroad.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:gravity="center" android:text="xin chào" android:textsize="40dip" /> <button android:id="@+id/btnlogout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="80dip" android: android:text="thoát" android:textcolor="#21dbd4" android:textsize="20dip" android:textstyle="bold" /> </linearlayout>
- databasehandler.java
Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700]; [/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]hashmap[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]contentvalues[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]context[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]cursor[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]sqlite[/color][color=#007700].[/color][color=#0000bb]sqlitedatabase[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]database[/color][color=#007700].[/color][color=#0000bb]sqlite[/color][color=#007700].[/color][color=#0000bb]sqliteopenhelper[/color][color=#007700]; public class [/color][color=#0000bb]databasehandler [/color][color=#007700]extends [/color][color=#0000bb]sqliteopenhelper [/color][color=#007700]{ [/color][color=#ff8000]//phiên bản database (version) [/color][color=#007700]private static final [/color][color=#0000bb]int database_version [/color][color=#007700]= [/color][color=#0000bb]1[/color][color=#007700]; [/color][color=#ff8000]//tên database [/color][color=#007700]private static final [/color][color=#0000bb]string database_name [/color][color=#007700]= [/color][color=#dd0000]"android_api"[/color][color=#007700]; [/color][color=#ff8000]//tên table đăng nhập [/color][color=#007700]private static final [/color][color=#0000bb]string table_login [/color][color=#007700]= [/color][color=#dd0000]"login"[/color][color=#007700]; [/color][color=#ff8000]// login table columns names [/color][color=#007700]private static final [/color][color=#0000bb]string key_id [/color][color=#007700]= [/color][color=#dd0000]"id"[/color][color=#007700]; private static final [/color][color=#0000bb]string key_name [/color][color=#007700]= [/color][color=#dd0000]"name"[/color][color=#007700]; private static final [/color][color=#0000bb]string key_email [/color][color=#007700]= [/color][color=#dd0000]"email"[/color][color=#007700]; private static final [/color][color=#0000bb]string key_uid [/color][color=#007700]= [/color][color=#dd0000]"uid"[/color][color=#007700]; private static final [/color][color=#0000bb]string key_created_at [/color][color=#007700]= [/color][color=#dd0000]"created_at"[/color][color=#007700]; public [/color][color=#0000bb]databasehandler[/color][color=#007700]([/color][color=#0000bb]context context[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700], [/color][color=#0000bb]database_name[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700], [/color][color=#0000bb]database_version[/color][color=#007700]); } [/color][color=#ff8000]//khởi tạo table [/color][color=#007700]@[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]sqlitedatabase db[/color][color=#007700]) { [/color][color=#0000bb]string create_login_table [/color][color=#007700]= [/color][color=#dd0000]"create table " [/color][color=#007700]+ [/color][color=#0000bb]table_login [/color][color=#007700]+ [/color][color=#dd0000]"(" [/color][color=#007700]+ [/color][color=#0000bb]key_id [/color][color=#007700]+ [/color][color=#dd0000]" integer primary key," [/color][color=#007700]+ [/color][color=#0000bb]key_name [/color][color=#007700]+ [/color][color=#dd0000]" text," [/color][color=#007700]+ [/color][color=#0000bb]key_email [/color][color=#007700]+ [/color][color=#dd0000]" text unique," [/color][color=#007700]+ [/color][color=#0000bb]key_uid [/color][color=#007700]+ [/color][color=#dd0000]" text," [/color][color=#007700]+ [/color][color=#0000bb]key_created_at [/color][color=#007700]+ [/color][color=#dd0000]" text" [/color][color=#007700]+ [/color][color=#dd0000]")"[/color][color=#007700]; [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]execsql[/color][color=#007700]([/color][color=#0000bb]create_login_table[/color][color=#007700]); } [/color][color=#ff8000]//cập nhật database [/color][color=#007700]@[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onupgrade[/color][color=#007700]([/color][color=#0000bb]sqlitedatabase db[/color][color=#007700], [/color][color=#0000bb]int oldversion[/color][color=#007700], [/color][color=#0000bb]int newversion[/color][color=#007700]) { [/color][color=#ff8000]//xóa table cũ [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]execsql[/color][color=#007700]([/color][color=#dd0000]"drop table if exists " [/color][color=#007700]+ [/color][color=#0000bb]table_login[/color][color=#007700]); [/color][color=#ff8000]//khởi tạo lại database [/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]db[/color][color=#007700]); } [/color][color=#ff8000]//lưu trữ thông tin chi tiết người dùng vào database [/color][color=#007700]public [/color][color=#0000bb]void adduser[/color][color=#007700]([/color][color=#0000bb]string name[/color][color=#007700], [/color][color=#0000bb]string email[/color][color=#007700], [/color][color=#0000bb]string uid[/color][color=#007700], [/color][color=#0000bb]string created_at[/color][color=#007700]) { [/color][color=#0000bb]sqlitedatabase db [/color][color=#007700]= [/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]getwritabledatabase[/color][color=#007700](); [/color][color=#0000bb]contentvalues values [/color][color=#007700]= new [/color][color=#0000bb]contentvalues[/color][color=#007700](); [/color][color=#ff8000]//thêm giá tị name [/color][color=#0000bb]values[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]key_name[/color][color=#007700], [/color][color=#0000bb]name[/color][color=#007700]); [/color][color=#ff8000]//thêm giá tị email [/color][color=#0000bb]values[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]key_email[/color][color=#007700], [/color][color=#0000bb]email[/color][color=#007700]); [/color][color=#ff8000]//thêm giá trị uid [/color][color=#0000bb]values[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]key_uid[/color][color=#007700], [/color][color=#0000bb]uid[/color][color=#007700]); [/color][color=#ff8000]//thêm giá trị key_created_at [/color][color=#0000bb]values[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#0000bb]key_created_at[/color][color=#007700], [/color][color=#0000bb]created_at[/color][color=#007700]); [/color][color=#ff8000]//chèn thêm row vào table [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]insert[/color][color=#007700]([/color][color=#0000bb]table_login[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700], [/color][color=#0000bb]values[/color][color=#007700]); [/color][color=#ff8000]//đóng kết nối với database [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); } [/color][color=#ff8000]//lấy dữ liệu người dùng trong database [/color][color=#007700]public [/color][color=#0000bb]hashmap[/color][color=#007700]<[/color][color=#0000bb]string[/color][color=#007700], [/color][color=#0000bb]string[/color][color=#007700]> [/color][color=#0000bb]getuserdetails[/color][color=#007700](){ [/color][color=#0000bb]hashmap[/color][color=#007700]<[/color][color=#0000bb]string[/color][color=#007700],[/color][color=#0000bb]string[/color][color=#007700]> [/color][color=#0000bb]user [/color][color=#007700]= new [/color][color=#0000bb]hashmap[/color][color=#007700]<[/color][color=#0000bb]string[/color][color=#007700],[/color][color=#0000bb]string[/color][color=#007700]>(); [/color][color=#0000bb]string selectquery [/color][color=#007700]= [/color][color=#dd0000]"select * from " [/color][color=#007700]+ [/color][color=#0000bb]table_login[/color][color=#007700]; [/color][color=#0000bb]sqlitedatabase db [/color][color=#007700]= [/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]getreadabledatabase[/color][color=#007700](); [/color][color=#0000bb]cursor cursor [/color][color=#007700]= [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]rawquery[/color][color=#007700]([/color][color=#0000bb]selectquery[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); [/color][color=#ff8000]//di chuyển tới row đầu tiên [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]movetofirst[/color][color=#007700](); if([/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]getcount[/color][color=#007700]() > [/color][color=#0000bb]0[/color][color=#007700]){ [/color][color=#0000bb]user[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#dd0000]"name"[/color][color=#007700], [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]1[/color][color=#007700])); [/color][color=#0000bb]user[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#dd0000]"email"[/color][color=#007700], [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]2[/color][color=#007700])); [/color][color=#0000bb]user[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#dd0000]"uid"[/color][color=#007700], [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]3[/color][color=#007700])); [/color][color=#0000bb]user[/color][color=#007700].[/color][color=#0000bb]put[/color][color=#007700]([/color][color=#dd0000]"created_at"[/color][color=#007700], [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]4[/color][color=#007700])); } [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); return [/color][color=#0000bb]user[/color][color=#007700]; } [/color][color=#ff8000]//xem trạng thái đăng nhập, trả về số row trong table [/color][color=#007700]public [/color][color=#0000bb]int getrowcount[/color][color=#007700]() { [/color][color=#0000bb]string countquery [/color][color=#007700]= [/color][color=#dd0000]"select * from " [/color][color=#007700]+ [/color][color=#0000bb]table_login[/color][color=#007700]; [/color][color=#0000bb]sqlitedatabase db [/color][color=#007700]= [/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]getreadabledatabase[/color][color=#007700](); [/color][color=#0000bb]cursor cursor [/color][color=#007700]= [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]rawquery[/color][color=#007700]([/color][color=#0000bb]countquery[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); [/color][color=#0000bb]int rowcount [/color][color=#007700]= [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]getcount[/color][color=#007700](); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); [/color][color=#0000bb]cursor[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); return [/color][color=#0000bb]rowcount[/color][color=#007700]; } [/color][color=#ff8000]//thực hiện xóa tất cả row trong table [/color][color=#007700]public [/color][color=#0000bb]void resettables[/color][color=#007700](){ [/color][color=#0000bb]sqlitedatabase db [/color][color=#007700]= [/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]getwritabledatabase[/color][color=#007700](); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]delete[/color][color=#007700]([/color][color=#0000bb]table_login[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); } }[/color]
- jsonparser.java
Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700]; [/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]bufferedreader[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]ioexception[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]inputstream[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]inputstreamreader[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]unsupportedencodingexception[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].list; [/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]httpentity[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]httpresponse[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]namevaluepair[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]clientprotocolexception[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]entity[/color][color=#007700].[/color][color=#0000bb]urlencodedformentity[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]methods[/color][color=#007700].[/color][color=#0000bb]httppost[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]impl[/color][color=#007700].[/color][color=#0000bb]client[/color][color=#007700].[/color][color=#0000bb]defaulthttpclient[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonexception[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonobject[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]log[/color][color=#007700]; public class [/color][color=#0000bb]jsonparser [/color][color=#007700]{ static [/color][color=#0000bb]inputstream is [/color][color=#007700]= [/color][color=#0000bb]null[/color][color=#007700]; static [/color][color=#0000bb]jsonobject jobj [/color][color=#007700]= [/color][color=#0000bb]null[/color][color=#007700]; static [/color][color=#0000bb]string json [/color][color=#007700]= [/color][color=#dd0000]""[/color][color=#007700]; [/color][color=#ff8000]//hàm xây dựng khởi tạo đối tượng [/color][color=#007700]public [/color][color=#0000bb]jsonparser[/color][color=#007700]() { } public [/color][color=#0000bb]jsonobject getjsonfromurl[/color][color=#007700]([/color][color=#0000bb]string url[/color][color=#007700], list<[/color][color=#0000bb]namevaluepair[/color][color=#007700]> [/color][color=#0000bb]params[/color][color=#007700]) { [/color][color=#ff8000]//cố gắng thực hiện gửi yêu cầu lên http [/color][color=#007700]try { [/color][color=#0000bb]defaulthttpclient httpclient [/color][color=#007700]= new [/color][color=#0000bb]defaulthttpclient[/color][color=#007700](); [/color][color=#0000bb]httppost httppost [/color][color=#007700]= new [/color][color=#0000bb]httppost[/color][color=#007700]([/color][color=#0000bb]url[/color][color=#007700]); [/color][color=#0000bb]httppost[/color][color=#007700].[/color][color=#0000bb]setentity[/color][color=#007700](new [/color][color=#0000bb]urlencodedformentity[/color][color=#007700]([/color][color=#0000bb]params[/color][color=#007700])); [/color][color=#0000bb]httpresponse httpresponse [/color][color=#007700]= [/color][color=#0000bb]httpclient[/color][color=#007700].[/color][color=#0000bb]execute[/color][color=#007700]([/color][color=#0000bb]httppost[/color][color=#007700]); [/color][color=#0000bb]httpentity httpentity [/color][color=#007700]= [/color][color=#0000bb]httpresponse[/color][color=#007700].[/color][color=#0000bb]getentity[/color][color=#007700](); [/color][color=#0000bb]is [/color][color=#007700]= [/color][color=#0000bb]httpentity[/color][color=#007700].[/color][color=#0000bb]getcontent[/color][color=#007700](); } catch ([/color][color=#0000bb]unsupportedencodingexception e[/color][color=#007700]) { [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]printstacktrace[/color][color=#007700](); } catch ([/color][color=#0000bb]clientprotocolexception e[/color][color=#007700]) { [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]printstacktrace[/color][color=#007700](); } catch ([/color][color=#0000bb]ioexception e[/color][color=#007700]) { [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]printstacktrace[/color][color=#007700](); } try { [/color][color=#0000bb]bufferedreader reader [/color][color=#007700]= new [/color][color=#0000bb]bufferedreader[/color][color=#007700](new [/color][color=#0000bb]inputstreamreader[/color][color=#007700]([/color][color=#0000bb]is[/color][color=#007700], [/color][color=#dd0000]"iso-8859-1"[/color][color=#007700]), [/color][color=#0000bb]8[/color][color=#007700]); [/color][color=#0000bb]stringbuilder sb [/color][color=#007700]= new [/color][color=#0000bb]stringbuilder[/color][color=#007700](); [/color][color=#0000bb]string line [/color][color=#007700]= [/color][color=#0000bb]null[/color][color=#007700]; while (([/color][color=#0000bb]line [/color][color=#007700]= [/color][color=#0000bb]reader[/color][color=#007700].[/color][color=#0000bb]readline[/color][color=#007700]()) != [/color][color=#0000bb]null[/color][color=#007700]) { [/color][color=#0000bb]sb[/color][color=#007700].[/color][color=#0000bb]append[/color][color=#007700]([/color][color=#0000bb]line [/color][color=#007700]+ [/color][color=#dd0000]"
"[/color][color=#007700]); } [/color][color=#0000bb]is[/color][color=#007700].[/color][color=#0000bb]close[/color][color=#007700](); [/color][color=#0000bb]json [/color][color=#007700]= [/color][color=#0000bb]sb[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]log[/color][color=#007700].[/color][color=#0000bb]e[/color][color=#007700]([/color][color=#dd0000]"json"[/color][color=#007700], [/color][color=#0000bb]json[/color][color=#007700]); } catch ([/color][color=#0000bb]exception e[/color][color=#007700]) { [/color][color=#0000bb]log[/color][color=#007700].[/color][color=#0000bb]e[/color][color=#007700]([/color][color=#dd0000]"buffer error"[/color][color=#007700], [/color][color=#dd0000]"error converting result " [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } [/color][color=#ff8000]//cố gắng phân tích chuỗi sang một jsonobject [/color][color=#007700]try { [/color][color=#0000bb]jobj [/color][color=#007700]= new [/color][color=#0000bb]jsonobject[/color][color=#007700]([/color][color=#0000bb]json[/color][color=#007700]); } catch ([/color][color=#0000bb]jsonexception e[/color][color=#007700]) { [/color][color=#0000bb]log[/color][color=#007700].[/color][color=#0000bb]e[/color][color=#007700]([/color][color=#dd0000]"json parser"[/color][color=#007700], [/color][color=#dd0000]"error parsing data " [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } return [/color][color=#0000bb]jobj[/color][color=#007700]; }}[/color]
- userfunctions.java
Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700]; [/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]arraylist[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].list; [/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]namevaluepair[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]apache[/color][color=#007700].[/color][color=#0000bb]http[/color][color=#007700].[/color][color=#0000bb]message[/color][color=#007700].[/color][color=#0000bb]basicnamevaluepair[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonobject[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]context[/color][color=#007700]; public class [/color][color=#0000bb]userfunctions [/color][color=#007700]{ private [/color][color=#0000bb]jsonparser jsonparser[/color][color=#007700]; private static [/color][color=#0000bb]string loginurl [/color][color=#007700]= [/color][color=#dd0000]"http://10.0.2.2/android_login_api/"[/color][color=#007700]; private static [/color][color=#0000bb]string registerurl [/color][color=#007700]= [/color][color=#dd0000]"http://10.0.2.2/android_login_api/"[/color][color=#007700]; [/color][color=#ff8000]/*private static string loginurl = "http://localhost/android_login_api/ "; private static string registerurl = "http://localhost/android_login_api/";*/ [/color][color=#007700]private static [/color][color=#0000bb]string login_tag [/color][color=#007700]= [/color][color=#dd0000]"login"[/color][color=#007700]; private static [/color][color=#0000bb]string register_tag [/color][color=#007700]= [/color][color=#dd0000]"register"[/color][color=#007700]; [/color][color=#ff8000]//hàm xây dựng khởi tạo đối tượng [/color][color=#007700]public [/color][color=#0000bb]userfunctions[/color][color=#007700](){ [/color][color=#0000bb]jsonparser [/color][color=#007700]= new [/color][color=#0000bb]jsonparser[/color][color=#007700](); } [/color][color=#ff8000]//thực hiện công việc đăng nhập với email và password [/color][color=#007700]public [/color][color=#0000bb]jsonobject loginuser[/color][color=#007700]([/color][color=#0000bb]string email[/color][color=#007700], [/color][color=#0000bb]string password[/color][color=#007700]){ [/color][color=#ff8000]//xây dựng các giá trị [/color][color=#007700]list<[/color][color=#0000bb]namevaluepair[/color][color=#007700]> [/color][color=#0000bb]params [/color][color=#007700]= new [/color][color=#0000bb]arraylist[/color][color=#007700]<[/color][color=#0000bb]namevaluepair[/color][color=#007700]>(); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"tag"[/color][color=#007700], [/color][color=#0000bb]login_tag[/color][color=#007700])); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"email"[/color][color=#007700], [/color][color=#0000bb]email[/color][color=#007700])); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"password"[/color][color=#007700], [/color][color=#0000bb]password[/color][color=#007700])); [/color][color=#0000bb]jsonobject json [/color][color=#007700]= [/color][color=#0000bb]jsonparser[/color][color=#007700].[/color][color=#0000bb]getjsonfromurl[/color][color=#007700]([/color][color=#0000bb]loginurl[/color][color=#007700], [/color][color=#0000bb]params[/color][color=#007700]); [/color][color=#ff8000]//trả về đối tượng là 1 jsonobject [/color][color=#007700]return [/color][color=#0000bb]json[/color][color=#007700]; } public [/color][color=#0000bb]jsonobject registeruser[/color][color=#007700]([/color][color=#0000bb]string name[/color][color=#007700], [/color][color=#0000bb]string email[/color][color=#007700], [/color][color=#0000bb]string password[/color][color=#007700]){ [/color][color=#ff8000]//xây dựng các giá trị [/color][color=#007700]list<[/color][color=#0000bb]namevaluepair[/color][color=#007700]> [/color][color=#0000bb]params [/color][color=#007700]= new [/color][color=#0000bb]arraylist[/color][color=#007700]<[/color][color=#0000bb]namevaluepair[/color][color=#007700]>(); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"tag"[/color][color=#007700], [/color][color=#0000bb]register_tag[/color][color=#007700])); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"name"[/color][color=#007700], [/color][color=#0000bb]name[/color][color=#007700])); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"email"[/color][color=#007700], [/color][color=#0000bb]email[/color][color=#007700])); [/color][color=#0000bb]params[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700](new [/color][color=#0000bb]basicnamevaluepair[/color][color=#007700]([/color][color=#dd0000]"password"[/color][color=#007700], [/color][color=#0000bb]password[/color][color=#007700])); [/color][color=#0000bb]jsonobject json [/color][color=#007700]= [/color][color=#0000bb]jsonparser[/color][color=#007700].[/color][color=#0000bb]getjsonfromurl[/color][color=#007700]([/color][color=#0000bb]registerurl[/color][color=#007700], [/color][color=#0000bb]params[/color][color=#007700]); [/color][color=#ff8000]//trả về đối tượng là 1 jsonobject [/color][color=#007700]return [/color][color=#0000bb]json[/color][color=#007700]; } [/color][color=#ff8000]//kiểm tra người dùng [/color][color=#007700]public [/color][color=#0000bb]boolean isuserloggedin[/color][color=#007700]([/color][color=#0000bb]context context[/color][color=#007700]){ [/color][color=#0000bb]databasehandler db [/color][color=#007700]= new [/color][color=#0000bb]databasehandler[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700]); [/color][color=#0000bb]int count [/color][color=#007700]= [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]getrowcount[/color][color=#007700](); if([/color][color=#0000bb]count [/color][color=#007700]> [/color][color=#0000bb]0[/color][color=#007700]){ return [/color][color=#0000bb]true[/color][color=#007700]; } return [/color][color=#0000bb]false[/color][color=#007700]; } [/color][color=#ff8000]//thực hiện việc logoutuser bằng cách xóa dữ liệu database [/color][color=#007700]public [/color][color=#0000bb]boolean logoutuser[/color][color=#007700]([/color][color=#0000bb]context context[/color][color=#007700]){ [/color][color=#0000bb]databasehandler db [/color][color=#007700]= new [/color][color=#0000bb]databasehandler[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700]); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]resettables[/color][color=#007700](); return [/color][color=#0000bb]true[/color][color=#007700]; } }[/color]
- loginactivity.java
Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700]; [/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonexception[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonobject[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]button[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]edittext[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]textview[/color][color=#007700]; [/color][color=#0000bb]import com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700].[/color][color=#0000bb]databasehandler[/color][color=#007700];[/color][color=#0000bb]import com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700].[/color][color=#0000bb]userfunctions[/color][color=#007700]; public class [/color][color=#0000bb]loginactivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ [/color][color=#0000bb]button btnlogin[/color][color=#007700]; [/color][color=#0000bb]button btndestination urltoregister[/color][color=#007700]; [/color][color=#0000bb]edittext inputemail[/color][color=#007700]; [/color][color=#0000bb]edittext inputpassword[/color][color=#007700]; [/color][color=#0000bb]textview loginerrormsg[/color][color=#007700]; private static [/color][color=#0000bb]string key_success [/color][color=#007700]= [/color][color=#dd0000]"success"[/color][color=#007700]; private static [/color][color=#0000bb]string key_uid [/color][color=#007700]= [/color][color=#dd0000]"uid"[/color][color=#007700]; private static [/color][color=#0000bb]string key_name [/color][color=#007700]= [/color][color=#dd0000]"name"[/color][color=#007700]; private static [/color][color=#0000bb]string key_email [/color][color=#007700]= [/color][color=#dd0000]"email"[/color][color=#007700]; private static [/color][color=#0000bb]string key_created_at [/color][color=#007700]= [/color][color=#dd0000]"created_at"[/color][color=#007700]; @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]login[/color][color=#007700]); [/color][color=#0000bb]inputemail [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]loginemail[/color][color=#007700]); [/color][color=#0000bb]inputpassword [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]loginpassword[/color][color=#007700]); [/color][color=#0000bb]btnlogin [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]btnlogin[/color][color=#007700]); [/color][color=#0000bb]btndestination urltoregister [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]btndestination urltoregisterscreen[/color][color=#007700]); [/color][color=#0000bb]loginerrormsg [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]login_error[/color][color=#007700]); [/color][color=#ff8000]//đăng ký sự kiện nút đăng nhập [/color][color=#0000bb]btnlogin[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700]() { public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view view[/color][color=#007700]) { [/color][color=#0000bb]string email [/color][color=#007700]= [/color][color=#0000bb]inputemail[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]string password [/color][color=#007700]= [/color][color=#0000bb]inputpassword[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]userfunctions userfunction [/color][color=#007700]= new [/color][color=#0000bb]userfunctions[/color][color=#007700](); [/color][color=#ff8000]//thực thi việc đăng nhập với email và password [/color][color=#0000bb]jsonobject json [/color][color=#007700]= [/color][color=#0000bb]userfunction[/color][color=#007700].[/color][color=#0000bb]loginuser[/color][color=#007700]([/color][color=#0000bb]email[/color][color=#007700], [/color][color=#0000bb]password[/color][color=#007700]); [/color][color=#ff8000]//kiểm tra kết quả đăng nhập [/color][color=#007700]try { if ([/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_success[/color][color=#007700]) != [/color][color=#0000bb]null[/color][color=#007700]) { [/color][color=#0000bb]loginerrormsg[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#dd0000]""[/color][color=#007700]); [/color][color=#0000bb]string res [/color][color=#007700]= [/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_success[/color][color=#007700]); if([/color][color=#0000bb]integer[/color][color=#007700].[/color][color=#0000bb]parseint[/color][color=#007700]([/color][color=#0000bb]res[/color][color=#007700]) == [/color][color=#0000bb]1[/color][color=#007700]){ [/color][color=#ff8000]// user successfully logged in //lưu trữ thông tin chi iết người dùng trong database [/color][color=#0000bb]databasehandler db [/color][color=#007700]= new [/color][color=#0000bb]databasehandler[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700]()); [/color][color=#0000bb]jsonobject json_user [/color][color=#007700]= [/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getjsonobject[/color][color=#007700]([/color][color=#dd0000]"user"[/color][color=#007700]); [/color][color=#ff8000]//xóa toàn bộ dữ liệu trong database [/color][color=#0000bb]userfunction[/color][color=#007700].[/color][color=#0000bb]logoutuser[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700]()); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]adduser[/color][color=#007700]([/color][color=#0000bb]json_user[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_name[/color][color=#007700]), [/color][color=#0000bb]json_user[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_email[/color][color=#007700]), [/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_uid[/color][color=#007700]), [/color][color=#0000bb]json_user[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_created_at[/color][color=#007700])); [/color][color=#ff8000]//chuyển qua trang đăng nhập thành công [/color][color=#0000bb]intent dashboard [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700](), [/color][color=#0000bb]dashboardactivity[/color][color=#007700].class); [/color][color=#0000bb]dashboard[/color][color=#007700].[/color][color=#0000bb]addflags[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700].[/color][color=#0000bb]flag_activity_clear_top[/color][color=#007700]); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]dashboard[/color][color=#007700]); [/color][color=#ff8000]//đóng activity này [/color][color=#0000bb]finish[/color][color=#007700](); }else{ [/color][color=#ff8000]//thông báo lỗi đang nhập không thành công [/color][color=#0000bb]loginerrormsg[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#dd0000]"username/password không chính xác"[/color][color=#007700]); } } } catch ([/color][color=#0000bb]jsonexception e[/color][color=#007700]) { } } }); [/color][color=#ff8000]//chuyển qua trang đăng ký [/color][color=#0000bb]btndestination urltoregister[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700]() { public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view view[/color][color=#007700]) { [/color][color=#0000bb]intent i [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700](), [/color][color=#0000bb]registeractivity[/color][color=#007700].class); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]i[/color][color=#007700]); [/color][color=#0000bb]finish[/color][color=#007700](); } }); }}[/color]
- registeractivity.java
Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700]; [/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonexception[/color][color=#007700];[/color][color=#0000bb]import org[/color][color=#007700].[/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]jsonobject[/color][color=#007700]; [/color][color=#0000bb]import com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700].[/color][color=#0000bb]databasehandler[/color][color=#007700];[/color][color=#0000bb]import com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700].[/color][color=#0000bb]userfunctions[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]button[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]edittext[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]textview[/color][color=#007700]; public class [/color][color=#0000bb]registeractivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ [/color][color=#0000bb]button btnregister[/color][color=#007700]; [/color][color=#0000bb]button btndestination urltologin[/color][color=#007700]; [/color][color=#0000bb]edittext inputfullname[/color][color=#007700]; [/color][color=#0000bb]edittext inputemail[/color][color=#007700]; [/color][color=#0000bb]edittext inputpassword[/color][color=#007700]; [/color][color=#0000bb]textview registererrormsg[/color][color=#007700]; private static [/color][color=#0000bb]string key_success [/color][color=#007700]= [/color][color=#dd0000]"success"[/color][color=#007700]; private static [/color][color=#0000bb]string key_uid [/color][color=#007700]= [/color][color=#dd0000]"uid"[/color][color=#007700]; private static [/color][color=#0000bb]string key_name [/color][color=#007700]= [/color][color=#dd0000]"name"[/color][color=#007700]; private static [/color][color=#0000bb]string key_email [/color][color=#007700]= [/color][color=#dd0000]"email"[/color][color=#007700]; private static [/color][color=#0000bb]string key_created_at [/color][color=#007700]= [/color][color=#dd0000]"created_at"[/color][color=#007700]; @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]register[/color][color=#007700]); [/color][color=#0000bb]inputfullname [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]registername[/color][color=#007700]); [/color][color=#0000bb]inputemail [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]registeremail[/color][color=#007700]); [/color][color=#0000bb]inputpassword [/color][color=#007700]= ([/color][color=#0000bb]edittext[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]registerpassword[/color][color=#007700]); [/color][color=#0000bb]btnregister [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]btnregister[/color][color=#007700]); [/color][color=#0000bb]btndestination urltologin [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]btndestination urltologinscreen[/color][color=#007700]); [/color][color=#0000bb]registererrormsg [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]register_error[/color][color=#007700]); [/color][color=#ff8000]//đăng ký sự kiện cho nút đăng ký [/color][color=#0000bb]btnregister[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700]() { public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view view[/color][color=#007700]) { [/color][color=#0000bb]string name [/color][color=#007700]= [/color][color=#0000bb]inputfullname[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]string email [/color][color=#007700]= [/color][color=#0000bb]inputemail[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]string password [/color][color=#007700]= [/color][color=#0000bb]inputpassword[/color][color=#007700].[/color][color=#0000bb]gettext[/color][color=#007700]().[/color][color=#0000bb]tostring[/color][color=#007700](); [/color][color=#0000bb]userfunctions userfunction [/color][color=#007700]= new [/color][color=#0000bb]userfunctions[/color][color=#007700](); [/color][color=#0000bb]jsonobject json [/color][color=#007700]= [/color][color=#0000bb]userfunction[/color][color=#007700].[/color][color=#0000bb]registeruser[/color][color=#007700]([/color][color=#0000bb]name[/color][color=#007700], [/color][color=#0000bb]email[/color][color=#007700], [/color][color=#0000bb]password[/color][color=#007700]); [/color][color=#ff8000]//kiểm tra việc phản hồi từ dữ liệu [/color][color=#007700]try { if ([/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_success[/color][color=#007700]) != [/color][color=#0000bb]null[/color][color=#007700]) { [/color][color=#0000bb]registererrormsg[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#dd0000]""[/color][color=#007700]); [/color][color=#0000bb]string res [/color][color=#007700]= [/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_success[/color][color=#007700]); [/color][color=#ff8000]//nếu đăng ký thành công [/color][color=#007700]if([/color][color=#0000bb]integer[/color][color=#007700].[/color][color=#0000bb]parseint[/color][color=#007700]([/color][color=#0000bb]res[/color][color=#007700]) == [/color][color=#0000bb]1[/color][color=#007700]){ [/color][color=#ff8000]//lưu trữ thông tin người dùng vào database [/color][color=#0000bb]databasehandler db [/color][color=#007700]= new [/color][color=#0000bb]databasehandler[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700]()); [/color][color=#0000bb]jsonobject json_user [/color][color=#007700]= [/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getjsonobject[/color][color=#007700]([/color][color=#dd0000]"user"[/color][color=#007700]); [/color][color=#ff8000]//xóa tất cả dữ liệu [/color][color=#0000bb]userfunction[/color][color=#007700].[/color][color=#0000bb]logoutuser[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700]()); [/color][color=#0000bb]db[/color][color=#007700].[/color][color=#0000bb]adduser[/color][color=#007700]([/color][color=#0000bb]json_user[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_name[/color][color=#007700]), [/color][color=#0000bb]json_user[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_email[/color][color=#007700]), [/color][color=#0000bb]json[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_uid[/color][color=#007700]), [/color][color=#0000bb]json_user[/color][color=#007700].[/color][color=#0000bb]getstring[/color][color=#007700]([/color][color=#0000bb]key_created_at[/color][color=#007700])); [/color][color=#ff8000]//chuyển qua activity kết quả [/color][color=#0000bb]intent dashboard [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700](), [/color][color=#0000bb]dashboardactivity[/color][color=#007700].class); [/color][color=#0000bb]dashboard[/color][color=#007700].[/color][color=#0000bb]addflags[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700].[/color][color=#0000bb]flag_activity_clear_top[/color][color=#007700]); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]dashboard[/color][color=#007700]); [/color][color=#ff8000]//đóng activity hiện tại [/color][color=#0000bb]finish[/color][color=#007700](); }else{ [/color][color=#ff8000]//nếu đăng ký không thành công [/color][color=#0000bb]registererrormsg[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#dd0000]"đăng ký không thành công"[/color][color=#007700]); } } } catch ([/color][color=#0000bb]jsonexception e[/color][color=#007700]) { [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]printstacktrace[/color][color=#007700](); } } }); [/color][color=#ff8000]//đăng ký sự kiên cho button chuyển qua trong đăng nhập [/color][color=#0000bb]btndestination urltologin[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700]() { public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view view[/color][color=#007700]) { [/color][color=#0000bb]intent i [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700](), [/color][color=#0000bb]loginactivity[/color][color=#007700].class); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]i[/color][color=#007700]); [/color][color=#ff8000]//đóng activity hiện tại [/color][color=#0000bb]finish[/color][color=#007700](); } }); }}[/color]
- dashboardactivity.java
Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]button[/color][color=#007700]; [/color][color=#0000bb]import com[/color][color=#007700].[/color][color=#0000bb]example[/color][color=#007700].[/color][color=#0000bb]androidhive[/color][color=#007700].[/color][color=#0000bb]library[/color][color=#007700].[/color][color=#0000bb]userfunctions[/color][color=#007700]; public class [/color][color=#0000bb]dashboardactivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ [/color][color=#0000bb]userfunctions userfunctions[/color][color=#007700]; [/color][color=#0000bb]button btnlogout[/color][color=#007700]; @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#ff8000]//kiểm tra trạng thái đăng nhập trong database cục bộ [/color][color=#0000bb]userfunctions [/color][color=#007700]= new [/color][color=#0000bb]userfunctions[/color][color=#007700](); if([/color][color=#0000bb]userfunctions[/color][color=#007700].[/color][color=#0000bb]isuserloggedin[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700]())){ [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]dashboard[/color][color=#007700]); [/color][color=#0000bb]btnlogout [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]btnlogout[/color][color=#007700]); [/color][color=#0000bb]btnlogout[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700]() { public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view arg0[/color][color=#007700]) { [/color][color=#0000bb]userfunctions[/color][color=#007700].[/color][color=#0000bb]logoutuser[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700]()); [/color][color=#0000bb]intent login [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700](), [/color][color=#0000bb]loginactivity[/color][color=#007700].class); [/color][color=#0000bb]login[/color][color=#007700].[/color][color=#0000bb]addflags[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700].[/color][color=#0000bb]flag_activity_clear_top[/color][color=#007700]); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]login[/color][color=#007700]); [/color][color=#ff8000]//đóng activity hiện tại [/color][color=#0000bb]finish[/color][color=#007700](); } }); }else{ [/color][color=#0000bb]intent login [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]getapplicationcontext[/color][color=#007700](), [/color][color=#0000bb]loginactivity[/color][color=#007700].class); [/color][color=#0000bb]login[/color][color=#007700].[/color][color=#0000bb]addflags[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700].[/color][color=#0000bb]flag_activity_clear_top[/color][color=#007700]); [/color][color=#0000bb]startactivity[/color][color=#007700]([/color][color=#0000bb]login[/color][color=#007700]); [/color][color=#ff8000]//đóng activity hiện tại [/color][color=#0000bb]finish[/color][color=#007700](); } }}[/color]
bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: android.vn
pass giải nén: http://android.vn
support: thanhlong90.it@gmail.com
chúc các bạn thành công!
Chào mừng bạn đến với Điện Lạnh Lương Gia Phát - địa chỉ tin cậy cho dịch vụ sửa tủ lạnh chuyên nghiệp và uy tín. Chúng tôi hiểu rằng tủ lạnh là một trong những thiết bị điện gia dụng quan trọng nhất...
Dịch Vụ Sửa Tủ Lạnh Tại Quận 2 Chuyên Nghiệp, Giá Tốt