編輯:關於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第三方框架解析
本文實例為大家分享了Android ImageLoader框架的使用方法,供大家參考,具體內容如下1.准備工作1)導入universal-image-loader-1.9
Android自定義UI手勢密碼簡單版
先看看效果圖:ImageLockActivitypackage com.example.imagelock; import com.example.view.NineP
Android studio 發布Android Library項目到JCenter
互聯網的發展是非常迅猛的,剛剛覺得自己適應了eclipse的用法,突然發現它已經被淘汰了。OK,今天不是來說eclipse和Android studio的褒貶。我們是來學
Android測試
1. Testing http://developer.android.com/tools/testing/index.html Android的框架包含了一組完整的