安卓的小型sql数据库

public class SplActivity extends Activity implements OnClickListener{
    private Button insertBtn, selectBtn,displayBtn;
    private ListView mListView;
    private SQLiteDatabase db;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sql_activity);
        mListView=new ListView(this);
        BtnInit();
        OpenCreateDB();
        //单击事件
        mListView.setOnItemClickListener(new OnItemClickListener(){
 
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
             
                final Cursor c = db.rawQuery("SELECT * FROM HomeLibrary WHERE _id = ?", new String[]{""+(arg2+1)});
                if(c.moveToFirst())
                {
                    View view1=LayoutInflater.from(SplActivity.this).inflate(R.layout.dialog, null);
                    final TextView idd=(TextView) view1.findViewById(R.id.textView1);
                    final EditText command=(EditText) view1.findViewById(R.id.editText2);
                    final EditText result=(EditText) view1.findViewById(R.id.editText3);
                     
                    idd.setText(c.getInt(0)+"");
                    command.setText(c.getString(1));
                    result.setText(c.getString(2));
 
                    new AlertDialog.Builder(SplActivity.this)
                    .setTitle("手动修改数据")
                    .setView(view1)
                    .setPositiveButton("确定修改", new AlertDialog.OnClickListener() {
                         
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            ContentValues cv = new ContentValues();  
                            cv.put("command",command.getText().toString());  
                            db.update("HomeLibrary", cv, "_id = ?", new String[]{idd.getText().toString()});                            
                            cv.put("result",result.getText().toString());  
                            db.update("HomeLibrary", cv, "_id = ?", new String[]{idd.getText().toString()});
                        }
                    }).create().show();
                }
            }
        });     
    }
    
    public void BtnInit(){
        insertBtn=(Button)findViewById(R.id.insert);
        selectBtn=(Button)findViewById(R.id.select);
        displayBtn=(Button)findViewById(R.id.display);
        mListView=(ListView)findViewById(R.id.listview);
        insertBtn.setOnClickListener(this);
        selectBtn.setOnClickListener(this);
        displayBtn.setOnClickListener(this);
    }
     
    public class DTData {
        int _id;//与所建立的表对应
        String command;
        String result;
        public DTData(String command,String result){
            this.command=command;
            this.result=result;
        }
    }
     
    public void OpenCreateDB(){
        db = openOrCreateDatabase("/sdcard/douting/HomeLibrary.db", Context.MODE_PRIVATE, null);
        //db.execSQL("DROP TABLE IF EXISTS HomeLibrary");  //初始化数据库
        //判断文件是否建立了表格,没有这生成表格  
        db.execSQL("CREATE TABLE IF NOT EXISTS HomeLibrary (_id INTEGER PRIMARY KEY AUTOINCREMENT, command VARCHAR, result VARCHAR)");
    }
     
    //加载数据到HomeLibrary表
    public void InsertData(){
        View view1=LayoutInflater.from(SplActivity.this).inflate(R.layout.dialog, null);
        final TextView idd=(TextView) view1.findViewById(R.id.textView1);
        final EditText command=(EditText) view1.findViewById(R.id.editText2);
        final EditText result=(EditText) view1.findViewById(R.id.editText3);
        idd.setText("序号自动生成");
        new AlertDialog.Builder(SplActivity.this)
        .setTitle("手动加载数据")
        .setView(view1)
        .setPositiveButton("确定加载", new AlertDialog.OnClickListener() {
             
            @Override
            public void onClick(DialogInterface dialog, int which) { 
                db.execSQL("INSERT INTO HomeLibrary VALUES (NULL,?,?)",
                        new Object[]{command.getText().toString(),result.getText().toString()});
                Log.d("msg","加载成功");
            }
        }).create().show();
    }
     
    public void Find(String str1,int key)
    {
        List<String> list=new ArrayList<String>();
        Cursor c = db.rawQuery("SELECT * FROM HomeLibrary", null);
        int[] num = new int[c.getCount()];  //定义和数据库指令条数相等大小的数组
        Log.d("msg","--------------全部数据----------------------------");
        Log.d("msg",""+str1.length());//获得字符串中的对应字符
        int k=0;
        while (c.moveToNext()) {
            if(c.getString(key).indexOf(str1.charAt(0))>=0)
            {
                num[k++] = c.getInt(0);
                Log.d("msg",""+str1.charAt(0)+num[k-1]);
            }
        }
        //循环匹配到最后一个字符
        for (int i = 1; i < str1.length(); i++) {
            int j=k=0;
            while(num[j]!=0){
                c.moveToFirst();
                c.move(num[j]-1);   //移动的时候要减1,否则会移动到下一个
                if(c.getString(key).indexOf(str1.charAt(i))>=0)
                {
                    num[j]=0;
                    num[k++] = c.getInt(0);
                    Log.d("msg",""+str1.charAt(i)+num[k-1]);
                }
                j++;
            }
        }
        c.moveToFirst();
        if(num[0]!=0)
            c.move(num[0]-1);   //移动的时候要减1,否则会移动到下一个
        else
            c.move(0);  //防止都查不到出错
        String string=""+c.getInt(0)+" "+c.getString(1)+" "+c.getString(2);
        list.add(string);
        c.close();
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,list);
        mListView.setAdapter(adapter);
    }
     
    //查找数据
    public void Select(){
        View view1=LayoutInflater.from(SplActivity.this).inflate(R.layout.dialog, null);
        final TextView idd=(TextView) view1.findViewById(R.id.textView1);
        final EditText command=(EditText) view1.findViewById(R.id.editText2);
        final EditText result=(EditText) view1.findViewById(R.id.editText3);
        idd.setText("选择其中一个查询");
        new AlertDialog.Builder(SplActivity.this)
        .setTitle("手动查询数据")
        .setView(view1)
        .setPositiveButton("确定查询", new AlertDialog.OnClickListener() {
             
            @Override
            public void onClick(DialogInterface dialog, int which) { 
                if(command.getText().toString().length()!=0)
                    Find(command.getText().toString(), 1);
                else if(result.getText().toString().length()!=0)
                    Find(result.getText().toString(), 2);
                Log.d("msg","查询成功");
            }
        }).create().show();
         
         
    }
     
    //显示数据
    public void Display(){
        List<String> list=new ArrayList<String>();
        Cursor c = db.rawQuery("SELECT * FROM HomeLibrary", null);
        while (c.moveToNext()) {
            String string=""+c.getInt(0)+" "+c.getString(1)+" "+c.getString(2);
            list.add(string);
            Log.d("msg",string);
        }
        c.close();
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,list);
        mListView.setAdapter(adapter);
    }
     
    @Override
    public void onClick(View v) {
        switch(v.getId()){
        case R.id.insert:
            InsertData();
            break;
             
        case R.id.display:
            Display();
            break;
 
        case R.id.select:
            Select();
            break;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值