編輯:關於Android編程
/**
* Created by acer on 2016/9/7.
* @author Rine
* 創建數據庫
*/
public class MyOpenHelper extends SQLiteOpenHelper
{
/**
* 數據庫版本
*/
public static final int VERSION = 1;
/**
* 數據庫名
*/
public static final String DB_NAME = "MyOneApp.db";
private Context mcontext;
/**
* 用戶臨時數據(UserTemp)建表語句
*/
public static final String CREATE_USERTEMP = "create table UserTemp ("
+ "id integer primary key autoincrement, " //id主鍵
+ "user_name text, " //用戶賬號
+ "user_autograph text," //用戶簽名
+ "user_idName text," //用戶網名
+ "user_imgAddress text)"; //用戶頭像地址
public MyOpenHelper(Context context)
{
super(context, DB_NAME, null, VERSION);
mcontext = context;
}
/**
* 創建表
*/
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(CREATE_USERTEMP);
LogInfo.log("數據創建成功");
}
/**
* 數據庫升級
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// TODO Auto-generated method stub
}
}
public class MainActivity extends Activity{
private MyOpenHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new MyOpenHelper(context);
dbHelper.getWritableDatabase();//這句話在下面的創建實例及DAO注釋掉。
}
}
當然,他只在第一次創建才有效(也就是當沒有改表的時候),當創建了該表,第二次就不會重復創建。
/**
* Created by acer on 2016/9/7.
* @author Rine
* APP臨時狀態(UserTemp)的實例
*/
public class UserTemp {
/**id**/
private int id;
/**用戶賬戶**/
private String name;
/**用戶簽名**/
private String autograph;
/**用戶網名**/
private String idName;
/**用戶頭像地址**/
private String imgAddress;
public UserTemp()
{
super();
}
public UserTemp(int id, String name, String autograph, String idName,
String imgAddress)
{
super();
this.id = id;
this.name = name;
this.autograph = autograph;
this.idName = idName;
this.imgAddress = imgAddress;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAutograph() {
return autograph;
}
public void setAutograph(String autograph) {
this.autograph = autograph;
}
public String getIdName() {
return idName;
}
public void setIdName(String idName) {
this.idName = idName;
}
public String getImgAddress() {
return imgAddress;
}
public void setImgAddress(String imgAddress) {
this.imgAddress = imgAddress;
}
}
/**
* Created by acer on 2016/9/7.
* @author Rine
* UserTemp DAO的管理
*/
public class UserTempDAO {
/**創建CloudOnlyDB對象 **/
private MyOpenHelper helper;
/**創建SQLiteDatabase對象 **/
private SQLiteDatabase db;
/** 定義構造函數 **/
public UserTempDAO(Context context)
{
helper = new MyOpenHelper(context); //初始化CloudOnlyDB對象
db = helper.getWritableDatabase(); //初始化SQLiteDatabase對象, 將上面MainActivity中的這句話注釋掉。
}
/**
* 添加AppTemp信息
* @param userTemp
*/
public void add(UserTemp userTemp)
{
// db = helper.getWritableDatabase(); //初始化SQLiteDatabase對象
/** 執行添加操作 **/
db.execSQL("insert into UserTemp(user_name,user_autograph,user_idName,user_imgAddress)"
+ "values(?,?,?,?)", new Object[]
{userTemp.getName(),userTemp.getAutograph()
,userTemp.getIdName(),userTemp.getImgAddress()});
}
/**
* 根據account 查找值
* @param user_name
* @return
*/
public List find(String user_name )
{
List userTemp = new ArrayList();
// Cursor cursor = db.rawQuery("select * from UserTemp",null); //獲取UserTemp的值
Cursor cursor = db.rawQuery("select * from UserTemp where user_name=?"
,new String[] {user_name}); //獲取UserTemp的值
// 將遍歷到的值存儲到UserTemp類中
while (cursor.moveToNext()) //判斷Cursor是否有數據
{
//將遍歷到的值存儲到UserTemp類中
userTemp.add(new UserTemp(cursor.getInt(cursor.getColumnIndex("id")),
cursor.getString(cursor.getColumnIndex("user_name")),
cursor.getString(cursor.getColumnIndex("user_autograph")),
cursor.getString(cursor.getColumnIndex("user_idName")),
cursor.getString(cursor.getColumnIndex("user_imgAddress"))));
};
return userTemp;
}
/**
* 按name對UserTemp進行修改
* @param key 鍵
* @param value 值
* @param name
* 鍵的值
* 1為簽名
* 2為網名
* 3為頭像地址
*/
public void updateUserTemp(int key, String value, String name)
{
ContentValues values = new ContentValues();
switch (key) {
case 1:
values.put("user_autograph", value);
db.update("UserTemp", values, "user_name=?", new String[]
{name});
break;
case 2:
values.put("user_idName", value);
db.update("UserTemp", values, "user_name=?", new String[]
{name});
break;
case 3:
values.put("user_imgAddress", value);
db.update("UserTemp", values, "user_name=?", new String[]
{name});
break;
default:
break;
}
}
/**
* 刪除全部
*/
public void deleteAll()
{
db.delete("UserTemp", null, null);
}
/**
* 獲取總記錄數
* @return
*/
public long getCount()
{
// db = helper.getWritableDatabase();//初始化SQLiteDatabase對象
Cursor cursor = db.rawQuery("select count(*) from UserTemp", null); //獲取AppTemp的記錄數
if (cursor.moveToNext()) //判斷Cursor是否有數據
{
return cursor.getLong(0); //返回總記錄數
}
return 0;
}
}
/**
* Created by acer on 2016/9/7.
* @author Rine
* * 賬戶臨時數據
*/
public class UserAccountTemp {
private static UserTemp userTemp;
private static UserTempDAO userTempDAO;
public UserAccountTemp(Context context)
{
userTemp = new UserTemp();
userTempDAO = new UserTempDAO(context);
}
/**
* 存儲
* (賬戶,簽名,網名,頭像地址)
*/
public void Save(String name, String autograph, String idName,
String imgAddress)
{
userTemp.setName(name);
userTemp.setAutograph(autograph);
userTemp.setIdName(idName);
userTemp.setImgAddress(imgAddress);
userTempDAO.add(userTemp);
}
/**
* 更新
* @param key
* 1為簽名
* 2為網名
* 3為頭像地址
* @param value 值
* @param name 賬戶
*/
public void Update(int key, String value, String name)
{
userTempDAO.updateUserTemp(key, value, name);
}
/**
* 查詢
* @param name
* @return Object
*/
public List Select(String name)
{
if(userTempDAO.getCount() == 0)
{
// LogInfo.log("數據為空");
return null;
}
else
{
//LogInfo.log("有數據:"+userTempDAO.getCount());
List userTempList = new ArrayList();
// LogInfo.log("有數據222id:"+userTempDAO.find( name).get(0).getId());
userTempList = userTempDAO.find( name);
return userTempList;
}
}
/**
* 刪除記錄
*/
public void DeleteAll()
{
userTempDAO.deleteAll();
}
/**
* 查詢是否有數據
* @return 有則true 無則false
*/
public boolean isData()
{
if(userTempDAO.getCount() != 0)
{
return true;
}
return false;
}
}
public class MainActivity extends Activity{ private MyOpenHelper dbHelper; private UserAccountTemp userAccountTemp; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = new MyOpenHelper(context); init(); } //這個是為了驗證數據庫是否正常創建並存入數據。 private void init() { userAccountTemp = new UserAccountTemp(context); userAccountTemp.Save("2449199892","我的作品", "夏-未醒", "就是這樣"); int value = userAccountTemp.Select("2449199892").size(); Toast.makeText(context, "幾條數據:" + value, Toast.LENGTH_SHORT).show(); } }
大功告成=-=至於DEMO,因為我集成到項目裡,所以沒有寫出一個DEMO。但是寫的這麼詳細,應該還是能看明白的。
如果有需要=-=我可以Q我。我再放上去。
Android NDK編寫一個HelloWorld
在上一篇博文中,我們搭建好了Android ndk 的開發環境,作為碼農,我們是不是先來寫一個HelloWorld來表示一下自己的到來。(1)首先在你的工作空間建一個An
新浪微博的圖片打不開怎麼辦
小編也曾經遇到過連續幾天都打不開新浪微博的圖片,一開始還以為新浪微博的服務器出問題了!於是問問朋友們有沒這種問題,然而他們都沒出現。於是小編就自己研究了一下
Android 支付開發(支付寶)
支付寶更新了開發文檔,針對最近的支付開發,做一下詳細的開發流程總結。一、接入流程1.1、第一步:創建應用並獲取APPID創建應用,獲取APPID,並且可以申請開通開放產品
Android自學筆記-6-簡單短信發送器
簡單實現的短信發送器,效果截圖如下: 其中的java代碼如下:package com.mxy.smssend; import java.util.ArrayList;