sqlite數據的使用很常見呢,我們簡單學習一下app的登錄、註冊、修改、刪除用戶吧!
下面就寫一個萌動的app註冊登錄吧!
主頁面:
還有2個圖片按鈕(雖然不是很好看,但是將就吧→。→)
EditView輸入框的監聽事件,2張圖片的切換
(爲了找22,33的圖片,我反編譯了 bilibii 的app,想不到圖片是分爲4張的 →。→)
用戶註冊:
修改密碼:這裏的判斷比較多!
刪除:
代碼構成一覽:
一、entity:User 實體類
自己寫 →。→
private int id; private String uname; private String upwd; private int isDel;
二、dao包:
DBOpenHelper:建表
package example.com.user_sqlite.dao; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; /** * Created by Administrator on 2017/4/5. */ public class DBOpenHelper extends SQLiteOpenHelper{ public DBOpenHelper(Context context, String name, CursorFactory factory,int version) { super(context, "SqliteTest.db", null, 1); } @Override public void onCreate(SQLiteDatabase sqliteDatabase) { String sql= "create table if not exists t_user("+ "id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"+ "uname VARCHAR(255),"+ "upwd VARCHAR(255),"+ "isDel INTEGER DEFAULT 0"+ ")"; sqliteDatabase.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } }
UserDao:sql語句的編寫
package example.com.user_sqlite.dao; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import java.lang.reflect.Array; import java.util.ArrayList; import example.com.user_sqlite.entity.User; /** * Created by Administrator on 2017/3/19. */ public class UserDao { private DBOpenHelper dbOpenHelper; //創建DBOpenHelper對象 private SQLiteDatabase sqLiteDatabase; //創建SQLiteDatabase對象 public UserDao(Context context){ //定義構造函數 dbOpenHelper=new DBOpenHelper(context,null,null,0); //初始化DBOpenHelper對象 } //插入數據 public void dbInsert(String uname,String upwd){ sqLiteDatabase =dbOpenHelper.getWritableDatabase(); String sql="insert into t_user(uname,upwd,isDel) values (?,?,0)"; Object bindArgs[] = new Object[]{ uname,upwd}; sqLiteDatabase.execSQL(sql,bindArgs); } //查詢數據 public int dbGetUserSize(){ sqLiteDatabase = dbOpenHelper.getWritableDatabase(); String sql="select count(*) from t_user where isDel=0"; Cursor cursor = sqLiteDatabase.rawQuery(sql,null); if (cursor.moveToNext()) //判斷Cursor中是否有數據 { return cursor.getInt(0); //返回總記錄數 } return 0; //如果沒有數據,則返回0 } public User dbQueryOneByUsername(String uname){ sqLiteDatabase = dbOpenHelper.getWritableDatabase(); String sql="select * from t_user where uname=? and isDel=0"; String[] selectionArgs = new String[]{ uname }; Cursor cursor = sqLiteDatabase.rawQuery(sql,selectionArgs); if (cursor.moveToNext()) //判斷Cursor中是否有數據 { User user=new User(); user.setId(cursor.getInt(cursor.getColumnIndex("id"))); user.setUname(cursor.getString(cursor.getColumnIndex("uname"))); user.setUpwd(cursor.getString(cursor.getColumnIndex("upwd"))); return user; //返回總記錄行數 } return null; } //修改密碼 public void dbUpdatePassword(String uname,String newUpwd){ sqLiteDatabase = dbOpenHelper.getWritableDatabase(); String sql="update t_user set upwd=? where uname=? and isDel=0"; Object bindArgs[] = new Object[]{ newUpwd,uname }; sqLiteDatabase.execSQL(sql,bindArgs); } //查詢新增數 public ArrayList<User> dbQueryAll(){ ArrayList<User> userArrayList = new ArrayList<User>(); sqLiteDatabase = dbOpenHelper.getWritableDatabase(); String sql="select * from t_user where isDel=0"; Cursor cursor= sqLiteDatabase.rawQuery(sql,null); for (cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()){ if (cursor.getInt(cursor.getColumnIndex("isDel"))!=1){ User user=new User(); user.setId(cursor.getInt(cursor.getColumnIndex("id"))); user.setUname(cursor.getString(cursor.getColumnIndex("uname"))); user.setUpwd(cursor.getString(cursor.getColumnIndex("upwd"))); userArrayList.add(user); } } return userArrayList; } //更新數據 public void dbDeleteUser(int id){ sqLiteDatabase = dbOpenHelper.getWritableDatabase(); String sql="update t_user set isDel=1 where id=?"; Object bindArgs[] = new Object[]{ id }; sqLiteDatabase.execSQL(sql,bindArgs); } }
三、實現的方法:
1、MainActivity
package example.com.user_sqlite; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; import android.app.Activity; import android.content.Intent; import example.com.user_sqlite.dao.UserDao; import example.com.user_sqlite.entity.User; public class MainActivity extends Activity { private ImageView bili1,bili2; // 用戶登錄 private EditText editTextA1; private EditText editTextA2; private Button buttonA1; // 數據庫操作類 private UserDao userDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 註冊組件 userDao = new UserDao(this); editTextA1 = (EditText) findViewById(R.id.editTextA1); editTextA2 = (EditText) findViewById(R.id.editTextA2); buttonA1 = (Button) findViewById(R.id.buttonA1); bili1=(ImageView) findViewById(R.id.bili1); bili2=(ImageView) findViewById(R.id.bili2); // 用戶登錄 buttonA1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String uname = editTextA1.getText() + ""; String upwd = editTextA2.getText() + ""; //一個是輸入不能爲空,一個是不能只打空格null if (uname.equals(null) || uname == "" || upwd.equals(null) || upwd == "") { Toast.makeText(MainActivity.this, "用戶名或密碼不得爲空!", Toast.LENGTH_SHORT).show(); } else { User user = userDao.dbQueryOneByUsername(uname); if (userDao.dbQueryOneByUsername(uname) == null) { Toast.makeText(MainActivity.this, "此用戶不存在!", Toast.LENGTH_SHORT).show(); } else { if (!user.getUpwd().equals(upwd)) { Toast.makeText(MainActivity.this, "密碼錯誤!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "登錄成功!", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, TableActivity.class); startActivity(intent); } } } } }); //輸入框 獲取/失去 焦點切換圖片 editTextA1.setOnFocusChangeListener(new android.view.View.OnFocusChangeListener(){ @Override public void onFocusChange(View v, boolean hasFocus) { //獲取焦點的時候,圖片一顯示,圖片二隱藏 if (hasFocus){ bili1.setVisibility(v.VISIBLE); bili2.setVisibility(v.GONE); }else { bili2.setVisibility(v.VISIBLE); bili1.setVisibility(v.GONE); } } }); } //註冊 public void Login(View view){ Intent intent = new Intent(this,LoginActivity.class); startActivity(intent); } //查看列表信息 public void Look(View view){ Intent intent = new Intent(this,TableActivity.class); startActivity(intent); } }
1.1:activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:background="@android:color/white" tools:context="example.com.user_sqlite.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 用戶登錄: --> <ImageView android:id="@+id/bili1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/bi22" android:layout_gravity="center_horizontal"/> <ImageView android:id="@+id/bili2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/bi33" android:visibility="gone" android:layout_gravity="center_horizontal"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="10dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/textViewA" android:textSize="24dp" android:gravity="center_horizontal" android:textColor="@android:color/holo_blue_light"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginRight="20dp" android:layout_marginTop="10dp"> <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView1" android:textSize="18dp" android:textColor="@android:color/holo_blue_light"/> <EditText android:id="@+id/editTextA1" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="text" android:textSize="18dp" android:background="@drawable/editbg"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="10dp" android:layout_marginRight="20dp"> <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView2" android:textSize="18dp" android:textColor="@android:color/holo_blue_light"/> <EditText android:id="@+id/editTextA2" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:textSize="18dp" android:background="@drawable/editbg"/> </LinearLayout> <Button android:id="@+id/buttonA1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button1" android:textSize="18sp" android:textColor="@color/chuise2" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" android:background="@drawable/buttonbg"/> </LinearLayout> <!--2個圖片按鈕 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="30dp"> <ImageButton android:onClick="Login" android:layout_width="0dp" android:layout_weight="1" android:layout_height="100dp" android:scaleType="fitXY" android:src="@drawable/a2" android:background="#00000000"/> <ImageButton android:onClick="Look" android:layout_width="0dp" android:layout_weight="1" android:layout_height="100dp" android:scaleType="fitXY" android:src="@drawable/a3" android:background="#00000000" android:layout_marginLeft="30dp"/> </LinearLayout> </LinearLayout> </ScrollView>
2、LoginActivity.java
註冊方法:這裏寫了很多if else的判斷,可能有點看暈,但是修改密碼AlterActivity 更加暈呢
或許我應該有接口封裝一來,有人跟我說:寫成接口,然後用true,false這麼判斷,
可是也有人對我說:你這裏的代碼複用性不高,寫成接口封裝會造成負擔.....
所以,我還沒有封裝呢....
package example.com.user_sqlite; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import example.com.user_sqlite.dao.UserDao; public class LoginActivity extends AppCompatActivity { // 用戶註冊 private EditText editTextB1; private EditText editTextB2; private EditText editTextB3; private Button buttonB1; // 數據庫操作類 private UserDao userDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); userDao = new UserDao(this); editTextB1 = (EditText) findViewById(R.id.editTextB1); editTextB2 = (EditText) findViewById(R.id.editTextB2); editTextB3 = (EditText) findViewById(R.id.editTextB3); buttonB1 = (Button) findViewById(R.id.buttonB1); //用戶註冊 buttonB1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String uname = editTextB1.getText() + ""; String upwd = editTextB2.getText() + ""; if (uname.equals(null) || uname == "" || upwd.equals(null) || upwd == ""){ Toast.makeText(LoginActivity.this,"用戶名或密碼不得爲空!",Toast.LENGTH_SHORT).show(); }else { String confirmPwd = editTextB3.getText()+ ""; if (!upwd.equals(confirmPwd)){ Toast.makeText(LoginActivity.this,"兩次輸入密碼不一致",Toast.LENGTH_SHORT).show(); }else { if (userDao.dbQueryOneByUsername(uname) == null){ userDao.dbInsert(uname,upwd); Toast.makeText(LoginActivity.this,"註冊成功!用戶名:"+uname+ ",密碼:"+upwd+",請牢記!",Toast.LENGTH_SHORT).show(); finish(); Intent intent = new Intent(LoginActivity.this,MainActivity.class); startActivity(intent); }else { Toast.makeText(LoginActivity.this,"該用戶已被註冊", Toast.LENGTH_SHORT).show(); } } } } }); } }
2.1、activity_login:註冊頁面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" android:padding="10dp" tools:context="example.com.user_sqlite.LoginActivity"> <ImageView android:layout_width="100dp" android:layout_height="120dp" android:src="@drawable/a1" android:layout_gravity="center_horizontal"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/textViewB" android:textSize="24sp" android:gravity="center_horizontal" android:layout_marginTop="20dp"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView1" android:textSize="18sp" /> <EditText android:id="@+id/editTextB1" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="text" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView2" android:textSize="18sp" /> <EditText android:id="@+id/editTextB2" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView3" android:textSize="18sp" /> <EditText android:id="@+id/editTextB3" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:textSize="18sp" /> </LinearLayout> <Button android:id="@+id/buttonB1" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="@string/button1" android:textSize="18sp" android:textColor="@color/chuise" android:layout_gravity="center_horizontal"/> </LinearLayout> </LinearLayout>
3、AlterActivity.java :修改密碼
這裏的if_else判斷更多
package example.com.user_sqlite; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import example.com.user_sqlite.dao.UserDao; import example.com.user_sqlite.entity.User; public class AlterActivity extends AppCompatActivity { // 修改密碼 private EditText editTextC1; private EditText editTextC2; private EditText editTextC3; private EditText editTextC4; private Button buttonC1; // 數據庫操作類 private UserDao userDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alter); userDao = new UserDao(this); editTextC1 = (EditText) findViewById(R.id.editTextC1); editTextC2 = (EditText) findViewById(R.id.editTextC2); editTextC3 = (EditText) findViewById(R.id.editTextC3); editTextC4 = (EditText) findViewById(R.id.editTextC4); buttonC1 = (Button) findViewById(R.id.buttonC1); //修改密碼 buttonC1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String uname=editTextC1.getText() + ""; String upwd =editTextC2.getText() + ""; if (uname.equals(null) || uname == "" || upwd.equals(null) || upwd == ""){ Toast.makeText(AlterActivity.this,"用戶名或密碼不得爲空!",Toast.LENGTH_SHORT).show(); }else { User user = userDao.dbQueryOneByUsername(uname); if (userDao.dbQueryOneByUsername(uname) == null) { Toast.makeText(AlterActivity.this,"此用戶不存在!",Toast.LENGTH_SHORT).show(); }else { if (!user.getUpwd().equals(upwd)) { Toast.makeText(AlterActivity.this, "密碼錯誤!", Toast.LENGTH_SHORT).show(); } else { String newPwd = editTextC3.getText() + ""; String confirmNewPwd = editTextC4.getText() + ""; if (newPwd.equals(null) || newPwd == "") { Toast.makeText(AlterActivity.this, "新密碼不能爲空!", Toast.LENGTH_SHORT).show(); } else { if (!newPwd.equals(confirmNewPwd)) { Toast.makeText(AlterActivity.this, "兩次密碼輸入不一致!", Toast.LENGTH_SHORT).show(); } else { userDao.dbUpdatePassword(uname, newPwd); Toast.makeText(AlterActivity.this, "修改密碼成功!新密碼:" + newPwd + ",請牢記", Toast.LENGTH_SHORT).show(); finish(); Intent intent= new Intent(AlterActivity.this,MainActivity.class); startActivity(intent); } } } } } } }); } }
3.1、activity_alter.xml
修改密碼的頁面:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" android:padding="10dp" tools:context="example.com.user_sqlite.AlterActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/textViewC" android:textSize="24sp" android:textColor="@android:color/holo_blue_light"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView1" android:textSize="18sp" /> <EditText android:id="@+id/editTextC1" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="text" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView4" android:textSize="18sp" /> <EditText android:id="@+id/editTextC2" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="80dp" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView5" android:textSize="18sp" /> <EditText android:id="@+id/editTextC3" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:gravity="center_vertical" android:layout_height="match_parent" android:text="@string/textView3" android:textSize="18sp" /> <EditText android:id="@+id/editTextC4" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:textSize="18sp" /> </LinearLayout> <Button android:id="@+id/buttonC1" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="@string/button1" android:textSize="18sp" android:textColor="@color/chuise" android:layout_gravity="center_horizontal" android:background="@drawable/buttonbg" android:layout_marginTop="10dp"/> </LinearLayout> </LinearLayout>
4、TableActivity.java
代碼佈局,輸出顯示註冊的用戶
package example.com.user_sqlite; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; import android.widget.Toast; import org.w3c.dom.Text; import java.util.ArrayList; import example.com.user_sqlite.dao.UserDao; import example.com.user_sqlite.entity.User; public class TableActivity extends Activity { //數據庫操作類 private UserDao userDao; private LinearLayout linearLayout1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_table); //代碼佈局,輸出註冊的用戶信息 userDao = new UserDao(this); linearLayout1 = (LinearLayout) findViewById(R.id.linearLayout1); int userSize = userDao.dbGetUserSize(); TextView textView1 = new TextView(this); textView1.setText("共有"+userSize+ "個用戶"); textView1.setTextSize(24); linearLayout1.addView(textView1,1); if (userSize>0){ ArrayList<User> userList = userDao.dbQueryAll(); TableLayout tableLayout1 = new TableLayout(this); tableLayout1.setStretchAllColumns(true); TableRow tableRow = new TableRow(this); TextView textView = new TextView(this); textView.setTextSize(24); textView.setText("用戶名"); tableRow.addView(textView); textView= new TextView(this); textView.setTextSize(24); textView.setText("密碼"); tableRow.addView(textView); textView = new TextView(this); textView.setTextSize(24); textView.setText("操作"); tableRow.addView(textView); //新建的TableRow添加到TableLayout tableLayout1.addView(tableRow,new TableLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT)); for (int i=0;i<userSize;i++){ User user = userList.get(i); //一個用戶佔據一行 tableRow = new TableRow(this); textView = new TextView(this); textView.setTextSize(18); textView.setText(user.getUname()); tableRow.addView(textView); textView = new TextView(this); textView.setTextSize(18); textView.setText(user.getUpwd()); tableRow.addView(textView); Button button = new Button(this); button.setText("刪除"); button.setTextSize(18); button.setId(user.getId()); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { userDao.dbDeleteUser(v.getId()); finish(); Intent intent = new Intent(TableActivity.this, TableActivity.class); startActivity(intent); Toast.makeText(TableActivity.this,"刪除成功!",Toast.LENGTH_SHORT).show(); } }); tableRow.addView(button); //新建的TableRow添加到TableLayout tableLayout1.addView(tableRow,new TableLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT)); } linearLayout1.addView(tableLayout1,2); } } //對物理按鈕的監聽 public boolean onKeyDown(int keycode, KeyEvent event){ switch (keycode){ case KeyEvent.KEYCODE_BACK: finish(); //關閉這個Activity Intent intent = new Intent(TableActivity.this,MainActivity.class); startActivity(intent); break; } return super.onKeyDown(keycode,event); } //登錄跳轉 public void dengLu(View v){ finish(); Intent intent = new Intent(this,MainActivity.class); startActivity(intent); } //註冊跳轉 public void Login(View v){ finish(); Intent intent = new Intent(this,LoginActivity.class); startActivity(intent); } //修改跳轉 public void Alter(View v){ finish(); Intent intent = new Intent(this,AlterActivity.class); startActivity(intent); } }
4.1、activity_table:xml
輸出信息頁面,因爲是代碼佈局的,所以有點醜....
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 註冊用戶顯示 --> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <View android:layout_width="match_parent" android:layout_height="wrap_content" android:tag="1" /> <View android:layout_width="match_parent" android:layout_height="wrap_content" android:tag="2" /> </LinearLayout> <!-- 三個按鈕 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="@string/textViewA" android:textColor="@color/chuise" android:background="@drawable/buttonbg" android:onClick="dengLu" /> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="@string/textViewB" android:textColor="@color/chuise" android:background="@drawable/buttonbg" android:layout_marginLeft="10dp" android:onClick="Login"/> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="@string/textViewC" android:textColor="@color/chuise" android:background="@drawable/buttonbg" android:layout_marginLeft="10dp" android:onClick="Alter"/> </LinearLayout> </LinearLayout> </ScrollView>
有時候我會用很多finish(); 大家自行決定要不要加吧.....
四、drwable資源文件:
1、buttonbg.xml
按鈕的樣式
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 描邊 --> <stroke android:width="0.5dp" android:color="@android:color/holo_blue_light"/> <!-- 填充 --> <!--<solid android:color=""/>--> <!-- 圓角 --> <corners android:radius="2dp"/> </shape>
2、editbg.xml
輸入框的樣式:
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 描邊 --> <stroke android:width="0.5dp" android:color="@android:color/holo_blue_light"/> <!-- 填充 --> <!--<solid android:color=""/>--> <!-- 圓角 --> <corners android:radius="5dp"/> <!-- 內容與邊框間距 --> <padding android:left="10dp" android:top="5dp" android:right="0dp" android:bottom="0dp"/> </shape>
至於圖片啊....大家自己找吧:
五、values屬性文件夾
colors自己寫
strings.xml:
<resources> <string name="app_name">Sqlite數據庫的增刪改查</string> <string name="action_settings">Settings</string> <string name="textViewA">用戶登錄</string> <string name="textViewB">用戶註冊</string> <string name="textViewC">修改密碼</string> <string name="textView1">用戶名:</string> <string name="textView2">密 碼 :</string> <string name="textView3">確認密碼:</string> <string name="textView4">舊密碼:</string> <string name="textView5">新密碼:</string> <string name="button1">確定</string> <string name="button2">查看用戶表</string> <string name="button3">返回</string> </resources>
對於這個簡單的項目,其實還有個致命的缺陷呢!
就是非當前用戶也可以修改密碼,這裏大家多做一個判斷吧