Trang 1 của 4 123 ... CuốiCuối
Kết quả 1 đến 10 của 35
  1. #1
    Ngày tham gia
    Apr 2016
    Bài viết
    0

    Hướng dẫn sử dụng đối tượng JSON để kết nối với server thông qua PHP

    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!

  2. #2
    Ngày tham gia
    Jan 2015
    Bài viết
    0
    hay qua.thanks. dang can may cai nay

  3. #3
    Ngày tham gia
    Feb 2015
    Bài viết
    0
    mình bị lỗi nullpointer trong file json.
    error parsing data org.json.jsonexception: value <?xml of type java.lang.string cannot be converted to jsonobject
    localhost của mình là : localhost:8080

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    bạn hãy xem lại video clip và làm lại 1 lần nữa xem nhé! nếu ko được thì liên hệ long qua skype để bug lỗi!

  5. #5
    Ngày tham gia
    May 2014
    Bài viết
    0
    chuyen sang tieng anh kieu gi,hinh nhu cai localhost do toan tieng phap

  6. #6
    Ngày tham gia
    Jun 2014
    Bài viết
    0
    để mở rộng project ở mức độ vừa phải thì nên chọn project ntn nhỉ?

  7. #7
    Ngày tham gia
    Jul 2015
    Bài viết
    0
    ? ý bạn muốn làm gì có thể nói rõ ra ko?

  8. #8
    Ngày tham gia
    Jul 2015
    Bài viết
    1
    sao mình chạy trên server thật thì chỉ co thể làm được record đầu lần thứ 2 trờ đi toàn báo là là đăng ký không hoàn thành nhỉ

  9. #9
    Ngày tham gia
    Dec 2014
    Bài viết
    0
    mình import nó báo lỗi này ad à

  10. #10
    Ngày tham gia
    Nov 2014
    Đang ở
    294 Đồng Đen, F10, Q.Tân Bình, TpHCM
    Bài viết
    0
    ad có thể giải thích code trong file jsonparser.java hộ mình được k? thanks ad

Trang 1 của 4 123 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •