編輯:關於Android編程
TIME: 包含了 小時、分鐘、秒;
/** * 創建一個用來插入數據的方法 * * @param name 姓名 * @param sex 性別 * @param age 年齡 * @param hobby 愛好 */ public void insert(String name, String sex, String age, String hobby) { //讓數據庫可寫 SQLiteDatabase database = getWritableDatabase(); /* 類似於HashMap 都有鍵值對 key 對應的列表中的某一列的名稱,字段 value 對應字段要插入的值 */ ContentValues values = new ContentValues(); values.put("name", name); values.put("sex", sex); values.put("age", age); values.put("hobby", hobby); //插入 database.insert(TABLE_NAME, null, values); //插入完成後關閉,以免造成內存洩漏 database.close(); }
/** * 創建一個刪除數據的方法,傳入的參數越多,刪除時越精確的找到要刪除的哪一行 * * @param name * @param sex * @param age * @param hobby */ public void delete(int id, String name, String sex, String age, String hobby) { SQLiteDatabase database = getWritableDatabase(); /* 刪除的條件,當id = 傳入的參數id時,sex = 傳入的參數sex時,age = 傳入的age,hobby = 傳入的hobby時 當條件都滿足時才刪除這行數據,一個條件不滿足就刪除失敗 */ String where = "id=? and name = ? and sex = ? and age = ? and hobby = ?"; //刪除條件的參數 String[] whereArgs = {id + "", name, sex, age, hobby}; database.delete(TABLE_NAME, where, whereArgs); database.close(); } /** * 再創建一個刪除一個刪除的方法,條件只有一個 */ public void delete(int id) { SQLiteDatabase database = getWritableDatabase(); //當條件滿足id = 傳入的參數的時候,就刪除那整行數據,有可能有好幾行都滿足這個條件,滿足的全部都刪除 String where = "id = ?"; String[] whereArgs = {id + ""}; database.delete(TABLE_NAME, where, whereArgs); database.close(); }
/** * 創建一個修改數據的方法 * @param id 條件,修改id為"id"的那一行數據 * @param name * @param sex * @param age * @param hobby */ public void updata(int id,String name, String sex, String age, String hobby) { SQLiteDatabase database = getWritableDatabase(); // update(String table,ContentValues values,String whereClause, String[] whereArgs) String where = "id = ?"; String[] whereArgs = {id+""}; ContentValues values = new ContentValues(); values.put("name", name); values.put("sex", sex); values.put("age", age); values.put("hobby", hobby); //參數1 表名稱 參數2 跟行列ContentValues類型的鍵值對Key-Value // 參數3 更新條件(where字句) 參數4 更新條件數組 database.update(TABLE_NAME, values,where, whereArgs); database.close();
/** * 創建一個查找數據庫的方法 * * public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit); 各個參數的意義說明: 參數table:表名稱 參數columns:列名稱數組 參數selection:條件字句,相當於where 參數selectionArgs:條件字句,參數數組 參數groupBy:分組列 參數having:分組條件 參數orderBy:排序列 參數limit:分頁查詢限制 參數Cursor:返回值,相當於結果集ResultSet Cursor是一個游標接口,提供了遍歷查詢結果的方法,如移動指針方法move(),獲得列值方法getString()等. */ public Cursor query() { //數據庫可讀 SQLiteDatabase database = getReadableDatabase(); //查找 Cursor query = database.query(TABLE_NAME, null, null, null, null, null, null); return query; }
/** * 通過查找數據庫,拿到裡面的數據 */ private List
package com.duanlian.databasedemo; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by duanlian on 2016/9/13. */ public class MyDataBase extends SQLiteOpenHelper { //數據庫名字 public static final String DB_NAME = "Students.db"; //數據庫版本 public static final int DB_VERSION = 1; //表名 public static final String TABLE_NAME = "student"; public static MyDataBase myDataBase; /** * 單例模式返回數據庫 * * @param context 上下文 * @return 數據庫對象 */ public static MyDataBase getInstances(Context context) { if (myDataBase == null) { return new MyDataBase(context); } else { return myDataBase; } } //上下文,數據庫名字,數據庫工廠,版本號 public MyDataBase(Context context) { super(context, DB_NAME, null, DB_VERSION); } //此方法中創建表 @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { //這個有個坑,create table"+" " + TABLE_NAME 中間一定要加空格,別問為什麼,我也不知道,不加就語法錯誤,吐血 sqLiteDatabase.execSQL("create table" + " " + TABLE_NAME + "(id INTEGER PRIMARY KEY AUTOINCREMENT,name text,sex text,age text,hobby text);"); } /** * 用來更新數據庫版本的 * onCreate方法只是在第一次安裝app的時候會調用,之後的數據庫要更改的話,必須使用數據庫版本上升,或者卸載了重新安裝 * * @param sqLiteDatabase 數據庫 * @param oldVersion 老的版本號 * @param newVersion 更新後的版本號 */ @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { if (newVersion > oldVersion) { //刪除老表 sqLiteDatabase.execSQL("drop" + TABLE_NAME); //重新創建表 onCreate(sqLiteDatabase); } } /** * 創建一個用來插入數據的方法 * * @param name 姓名 * @param sex 性別 * @param age 年齡 * @param hobby 愛好 */ public void insert(String name, String sex, String age, String hobby) { //讓數據庫可寫 SQLiteDatabase database = getWritableDatabase(); /* 類似於HashMap 都有鍵值對 key 對應的列表中的某一列的名稱,字段 value 對應字段要插入的值 */ ContentValues values = new ContentValues(); values.put("name", name); values.put("sex", sex); values.put("age", age); values.put("hobby", hobby); //插入 database.insert(TABLE_NAME, null, values); //插入完成後關閉,以免造成內存洩漏 database.close(); } /** * 創建一個查找數據庫的方法 * * public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit); 各個參數的意義說明: 參數table:表名稱 參數columns:列名稱數組 參數selection:條件字句,相當於where 參數selectionArgs:條件字句,參數數組 參數groupBy:分組列 參數having:分組條件 參數orderBy:排序列 參數limit:分頁查詢限制 參數Cursor:返回值,相當於結果集ResultSet Cursor是一個游標接口,提供了遍歷查詢結果的方法,如移動指針方法move(),獲得列值方法getString()等. */ public Cursor query() { //數據庫可讀 SQLiteDatabase database = getReadableDatabase(); //查找 Cursor query = database.query(TABLE_NAME, null, null, null, null, null, null); return query; } /** * 創建一個刪除數據的方法,傳入的參數越多,刪除時越精確的找到要刪除的哪一行 * * @param name * @param sex * @param age * @param hobby */ public void delete(int id, String name, String sex, String age, String hobby) { SQLiteDatabase database = getWritableDatabase(); /* 刪除的條件,當id = 傳入的參數id時,sex = 傳入的參數sex時,age = 傳入的age,hobby = 傳入的hobby時 當條件都滿足時才刪除這行數據,一個條件不滿足就刪除失敗 */ String where = "id=? and name = ? and sex = ? and age = ? and hobby = ?"; //刪除條件的參數 String[] whereArgs = {id + "", name, sex, age, hobby}; database.delete(TABLE_NAME, where, whereArgs); database.close(); } /** * 再創建一個刪除一個刪除的方法,條件只有一個 */ public void delete(int id) { SQLiteDatabase database = getWritableDatabase(); //當條件滿足id = 傳入的參數的時候,就刪除那整行數據,有可能有好幾行都滿足這個條件,滿足的全部都刪除 String where = "id = ?"; String[] whereArgs = {id + ""}; database.delete(TABLE_NAME, where, whereArgs); database.close(); } /** * 創建一個修改數據的方法 * @param id 條件,修改id為"id"的那一行數據 * @param name * @param sex * @param age * @param hobby */ public void updata(int id,String name, String sex, String age, String hobby) { SQLiteDatabase database = getWritableDatabase(); // update(String table,ContentValues values,String whereClause, String[] whereArgs) String where = "id = ?"; String[] whereArgs = {id+""}; ContentValues values = new ContentValues(); values.put("name", name); values.put("sex", sex); values.put("age", age); values.put("hobby", hobby); //參數1 表名稱 參數2 跟行列ContentValues類型的鍵值對Key-Value // 參數3 更新條件(where字句) 參數4 更新條件數組 database.update(TABLE_NAME, values,where, whereArgs); database.close(); } }
package com.duanlian.databasedemo; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import com.duanlian.databasedemo.adapter.MyListViewAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { private List
package com.duanlian.databasedemo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class AddActivity extends AppCompatActivity { private EditText edt_name; private EditText edt_sex; private EditText edt_age; private EditText edt_hobby; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add); initView(); } private void initView() { edt_name = (EditText) findViewById(R.id.add_name); edt_sex = (EditText) findViewById(R.id.add_sex); edt_age = (EditText) findViewById(R.id.add_age); edt_hobby = (EditText) findViewById(R.id.add_hobby); } public void add(View view){ //拿到輸入的數據 String name = edt_name.getText().toString().trim(); String sex = edt_sex.getText().toString().trim(); String age = edt_age.getText().toString().trim(); String hobby = edt_hobby.getText().toString().trim(); //調用插入方法 MyDataBase.getInstances(AddActivity.this).insert(name,sex,age,hobby); finish(); } }
package com.duanlian.databasedemo; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class CorrectActivity extends AppCompatActivity { private int id; private String name; private String sex; private String age; private String hobby; private EditText edt_name; private EditText edt_sex; private EditText edt_age; private EditText edt_hobby; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_correct); id = getIntent().getIntExtra("id", 0); name = getIntent().getStringExtra("name"); sex = getIntent().getStringExtra("sex"); age = getIntent().getStringExtra("age"); hobby = getIntent().getStringExtra("hobby"); initView(); } private void initView() { edt_name = (EditText) findViewById(R.id.correct_name); edt_sex = (EditText) findViewById(R.id.correct_sex); edt_age = (EditText) findViewById(R.id.correct_age); edt_hobby = (EditText) findViewById(R.id.correct_hobby); edt_name.setText(name); edt_sex.setText(sex); edt_age.setText(age); edt_hobby.setText(hobby); } public void choose(View view) { switch (view.getId()) { case R.id.correct_cancel: finish(); break; case R.id.correct_sure: //得到輸入的 String name = edt_name.getText().toString().trim(); String sex = edt_sex.getText().toString().trim(); String age = edt_age.getText().toString().trim(); String hobby = edt_hobby.getText().toString().trim(); //調用修改方法 MyDataBase.getInstances(CorrectActivity.this).updata(id, name, sex, age, hobby); finish(); break; } } }
本文實例為大家分享了Android ImageLoader框架的使用方法,供大家參考,具體內容如下1.准備工作1)導入universal-image-loader-1.9
先看看效果圖:ImageLockActivitypackage com.example.imagelock; import com.example.view.NineP
互聯網的發展是非常迅猛的,剛剛覺得自己適應了eclipse的用法,突然發現它已經被淘汰了。OK,今天不是來說eclipse和Android studio的褒貶。我們是來學
1. Testing http://developer.android.com/tools/testing/index.html Android的框架包含了一組完整的