//获取assets目录文件解析数据存储数据库 Listview展示 Dialog删除修改从数据库获取数据
//创建数据库
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class MySqliteOpenHelper extends SQLiteOpenHelper {
public static String table_name="User";
public MySqliteOpenHelper(Context context) {
super(context, "User.db", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table User(_id integer primary key autoincrement, uface varchar(20),uid varchar(20),uname varchar(20),urealname varchar(20),ustate varchar(20))");
Log.d("sqlites", "创建成功");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
//Dao类增删改查
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.zmy.d1_03sqliteopenhelper.Users.User;
private MySqliteOpenHelper openHelper;
private SQLiteDatabase db;
public Dao(Context context) {
openHelper = new MySqliteOpenHelper(context);
db = openHelper.getWritableDatabase();
}
//增加数据
public void Inser(List<User> uList){try {
db.beginTransaction();
for(User user:uList){
ContentValues values = new ContentValues();
values.put("uface", user.uface);
values.put("uid", user.uid);
values.put("uname", user.uname);
values.put("urealname", user.urealname);
values.put("ustate", user.ustate);
db.insert(MySqliteOpenHelper.table_name, null, values);
}
db.setTransactionSuccessful();
} catch (Exception e) {
// TODO: handle exception
}finally{
db.endTransaction();
}
}
//删除
public void delete(String uname){try {
db.beginTransaction();
db.execSQL("delete from User where uname=?", new Object[]{uname});
db.setTransactionSuccessful();
} catch (Exception e) {
// TODO: handle exception
}finally{
db.endTransaction();
}
}
//查找方法
List<User> userlist = new ArrayList<User>();
public List<User> Select(){
Cursor cursor = db.query( MySqliteOpenHelper.table_name, null, null, null, null, null, null);
userlist.clear();
while (cursor.moveToNext()) {
User user = new User();
user.uface = cursor.getString(cursor.getColumnIndex("uface"));
user._id = cursor.getInt(cursor.getColumnIndex("_id"));
user.uid = cursor.getString(cursor.getColumnIndex("uid"));
user.uname = cursor.getString(cursor.getColumnIndex("uname"));
user.ustate = cursor.getString(cursor.getColumnIndex("ustate"));
user.urealname = cursor.getString(cursor.getColumnIndex("urealname"));
userlist.add(user);
}
cursor.close();
return userlist;
}
//修改
public void update(String unames,int id){try {
db.beginTransaction();
db.execSQL("update User set uname = ? where _id = ?", new Object[] {
unames ,id});
db.setTransactionSuccessful();
} catch (Exception e) {
// TODO: handle exception
}finally{
db.endTransaction();
}
}
}
//mainactivity
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.zmy.d1_03sqliteopenhelper.Sqlite.Dao;
import com.zmy.d1_03sqliteopenhelper.Users.User;
public class MainActivity extends Activity {
private String json;
private ListView lv_main_listView;
private List<User> select;
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_main_listView = (ListView) findViewById(R.id.lv_main_listView);
// 解析json串
json();
//给listview添加数据库查询的数据
select = Myapplication.dao.Select();
myAdapter = new MyAdapter(this, select);
lv_main_listView.setAdapter(myAdapter);
// listview监听长按删除 点击弹出框修改名字
listview_info();}
private void listview_info() {
// TODO Auto-generated method stub
//listview点击监听
lv_main_listView.setOnItemClickListener(new OnItemClickListener() {private TextView et_new_name;
private AlertDialog alertDialog;
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
final int position, long arg3) {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new Builder(MainActivity.this);
alertDialog = builder.create();
View view = View
.inflate(MainActivity.this, R.layout.name, null);
alertDialog.setView(view);
alertDialog.show();
TextView et_name = (TextView) view.findViewById(R.id.et_name);
et_new_name = (TextView) view.findViewById(R.id.et_new_name);
et_name.setText(select.get(position).uname);
Button bt_true = (Button) view.findViewById(R.id.bt_true);
bt_true.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String uname = et_new_name.getText().toString().trim();
int _id = select.get(position)._id;
Myapplication.dao.update(uname, _id);
select = Myapplication.dao.Select();
myAdapter.notifyDataSetChanged();
alertDialog.cancel();
}
});
}
});
//listview长按监听
lv_main_listView.setOnItemLongClickListener(new OnItemLongClickListener() {
private AlertDialog alertDialogs;
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, final int position, long arg3) {
// TODO Auto-generated method stub
AlertDialog.Builder builders = new Builder(
MainActivity.this);
alertDialogs = builders.create();
alertDialogs.show();
String unames = select.get(position).uname;
Dao dao = new Dao(MainActivity.this);
dao.delete(unames);
select = Myapplication.dao.Select();
myAdapter.notifyDataSetChanged();
alertDialogs.cancel();
return false;
}
});
}
private void json() {
// TODO Auto-generated method stub
try {
// 获取assets目录文件
InputStream inputStream = getAssets().open("alluser.json");// 将流转换成字符串
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
while ((len = inputStream.read(buffer)) != -1) {
arrayOutputStream.write(buffer, 0, len);
}
json = arrayOutputStream.toString();
Gson gson = new Gson();
Type type = new TypeToken<List<User>>() {
}.getType();
List<User> list = gson.fromJson(json, type);
// 将解析的数据存放入数据库
Myapplication.dao.Inser(list);
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}