首先項目結構圖:java
接下來佈局:android
(1)activit_main.xmlsql
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用戶登陸" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="38dp" android:text="用戶名:" /> <EditText android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView2" android:layout_toRightOf="@+id/textView2" android:ems="10" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="36dp" android:text="密碼:" /> <EditText android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView3" android:layout_alignLeft="@+id/username" android:ems="10" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/password" android:layout_below="@+id/password" android:layout_marginLeft="24dp" android:layout_marginTop="36dp" android:text="登陸" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button1" android:layout_marginLeft="20dp" android:layout_toRightOf="@+id/button1" android:text="註冊" /> </RelativeLayout>
(2) activity_register.xmlapp
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用戶註冊" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="38dp" android:text="用戶名:" /> <EditText android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView2" android:layout_toRightOf="@+id/textView2" android:ems="10" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="36dp" android:text="密碼:" /> <EditText android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView3" android:layout_alignLeft="@+id/username" android:ems="10" /> <Button android:id="@+id/register" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/password" android:layout_centerHorizontal="true" android:layout_marginTop="118dp" android:text="註冊" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView3" android:layout_below="@+id/textView3" android:layout_marginTop="35dp" android:text="性別:" /> <EditText android:id="@+id/sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView4" android:layout_alignLeft="@+id/password" android:ems="10" > </EditText> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView4" android:layout_centerVertical="true" android:text="年齡:" /> <EditText android:id="@+id/age" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@+id/textView2" android:ems="10" /> </RelativeLayout>
下來是java代碼:dom
(1)User.javaide
package com.lihua.domain; /** * 實體類 * @author Lihua * */ public class User { private int id; private String username; private String password; private String sex; private int age; public User() { super(); } public User(int id, String username, String password, String sex, int age) { super(); this.id = id; this.username = username; this.password = password; this.sex = sex; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
(2)DbHelper.java佈局
package com.lihua.tools; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbHelper extends SQLiteOpenHelper { private final static String NAME = "user.db"; private final static int VERSION = 1; public DbHelper(Context context) { super(context, NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { String sql = "create table user (id integer primary key autoincrement,username varchar(64),password varchar(64),sex varchar(64),age integer)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } }
(3)UserService.javathis
package com.lihua.service; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.lihua.domain.User; import com.lihua.tools.DbHelper; /** * 服務類 * @author student * */ public class UserService { private DbHelper dbHelper; public UserService(Context context) { dbHelper = new DbHelper(context); } /** * 用戶登陸 * * @param username * @param password * @return */ public boolean Login(String username, String password) { SQLiteDatabase sqLiteDatabase = dbHelper.getReadableDatabase(); String sql = "select * from user where username = ? and password = ? "; Cursor rawQuery = sqLiteDatabase.rawQuery(sql, new String[] { username, password }); if (rawQuery.moveToFirst() == true) { rawQuery.close(); return true; } return false; } /** * 用戶註冊 * * @param user * @return */ public boolean Register(User user) { SQLiteDatabase sqLiteDatabase = dbHelper.getReadableDatabase(); String sql = "insert into user (username,password,sex,age) values (?,?,?,?)"; Object obj[] = { user.getUsername(), user.getPassword(), user.getSex(), user.getAge() }; sqLiteDatabase.execSQL(sql, obj); return true; } }
(4)MainActivity.javacode
package com.lihua.activity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.gj.R; import com.lihua.service.UserService; /** * 入口 * * @author Lihua * */ public class MainActivity extends Activity { // 分別爲用戶名和密碼 private EditText mUsername; private EditText mPassword; // 分別爲登錄和註冊按鈕 private Button mLogin; private Button mRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mUsername = (EditText) findViewById(R.id.username); mPassword = (EditText) findViewById(R.id.password); mLogin = (Button) findViewById(R.id.button1); mRegister = (Button) findViewById(R.id.button2); // 登錄 mLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String userName = mUsername.getText().toString().trim(); String passWord = mPassword.getText().toString().trim(); UserService userService = new UserService(MainActivity.this); boolean flag = userService.Login(userName, passWord); if (flag) { Toast.makeText(MainActivity.this, "登陸成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "登陸失敗!", Toast.LENGTH_SHORT).show(); } } }); // 註冊 mRegister.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(MainActivity.this, RegisterActivity.class); startActivity(intent); } }); } }
(5)RegisterActivity.javasqlite
package com.lihua.activity; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.gj.R; import com.lihua.domain.User; import com.lihua.service.UserService; /** * 註冊類 * @author Lihua * */ public class RegisterActivity extends Activity { private EditText mUsername; private EditText mPassword; private EditText mSex; private EditText mAge; private Button mRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); mUsername = (EditText)findViewById(R.id.username); mPassword = (EditText)findViewById(R.id.password); mSex = (EditText)findViewById(R.id.sex); mAge = (EditText)findViewById(R.id.age); mRegister = (Button)findViewById(R.id.register); mRegister.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String userName = mUsername.getText().toString().trim(); String passWord = mPassword.getText().toString().trim(); String Sex = mSex.getText().toString().trim(); int Age = Integer.parseInt(mAge.getText().toString().trim()); Log.i("TAG", userName); Log.i("TAG", passWord); Log.i("TAG", Sex); User user = new User(); user.setUsername(userName); user.setPassword(passWord); user.setSex(Sex); user.setAge(Age); System.out.println(user.getUsername()); System.out.println(user.getPassword()); System.out.println(user.getSex()); System.out.println(user.getAge()); UserService userService = new UserService(getBaseContext()); boolean flag = userService.Register(user); if (flag) { Toast.makeText(RegisterActivity.this, "註冊成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(RegisterActivity.this, "註冊失敗", Toast.LENGTH_SHORT).show(); } } }); } }
Activity註冊:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.gj" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.lihua.activity.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.lihua.activity.RegisterActivity" > </activity> </application> </manifest>
效果圖:
(1)登錄界面:
(2)註冊界面: