获取assets目录文件解析数据存储数据库 Listview展示 Dialog删除修改从数据库获取数据

来源:互联网 发布:亿加数据 编辑:程序博客网 时间:2024/04/27 21:46

//获取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;


public class Dao {
    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);


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
0 0