zoukankan      html  css  js  c++  java
  • Android中sqlite的学习

    实现了增加数据,删除数据,跟查询。绑定Spinner控件跟ListView控件,实现点击列表删除选项。

    package com.example.splite;
    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 android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    public class DbHelpe extends SQLiteOpenHelper {
        
        private static final int DATABASE_VERSION = 1; 
        private static final String DATABASE_NAME = "test";
        private static final String TABLE_LABELS = "labels";
        private static final String KEY_ID = "id";
        private static final String KEY_NAME = "name";
        SQLiteDatabase db;
        public DbHelpe(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            // TODO Auto-generated constructor stub
        }
        
        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            String sql = "CREATE TABLE " + TABLE_LABELS + "("
                    + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)";
            db.execSQL(sql);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
            db.execSQL("DROP TABLE IF EXISTS" + TABLE_LABELS);
            onCreate(db);
        }
        //增加
         public void insertLabel(String label){
             db = this.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put(KEY_NAME, label);
            db.insert(TABLE_LABELS, null, values);
            db.close(); // Closing database connection
            }
         //查找
         public List<String> getAllLabels(){
            List<String> labels = new ArrayList<String>();
     
            String selectQuery = "SELECT  * FROM " + TABLE_LABELS;
     
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor cursor = db.rawQuery(selectQuery, null);
     
            if (cursor.moveToFirst()) {
                do {
                 labels.add(cursor.getString(1));
                } while (cursor.moveToNext());
            }
            cursor.close();
            return labels;
        }
         //删除
         public void delete (String name){
             if(db==null)
            db=this.getReadableDatabase();
             String sql = "delete from labels where name='"+name+ "'";
             db.execSQL(sql);    
         }
    }

    主类里有一个方法,就是当点击添加数据按钮后,系统的文字输入框会自动隐藏,实现代码

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
    package com.example.splite;
    import java.util.List;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.database.Cursor;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.ScrollView;
    import android.widget.Spinner;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnItemClickListener {
        Spinner spinner;
        EditText edittext;
        Button   button;
        ScrollView scr;
        ListView list;
        Cursor mcursor;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);    
            list = (ListView)findViewById(R.id.listview);
            button = (Button)findViewById(R.id.btn_add);
            edittext = (EditText)findViewById(R.id.input_label);
            spinner = (Spinner)findViewById(R.id.spinner);
            list.setOnItemClickListener(this);
            button.setOnClickListener(new OnClickListener() {
                
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                String data = edittext.getText().toString().trim();
                if(data.trim().length()>0){
                    DbHelpe db  = new DbHelpe(getApplicationContext());
                    db.getWritableDatabase();
                    int a = 0;
                    a=db.getAllLabels().size();
                    db.insertLabel(data);
                    Log.d("ddd", db.getAllLabels().size()+"");
                    if(db.getAllLabels().size()>a){
                        Toast.makeText(getApplicationContext(), "插入成功", Toast.LENGTH_SHORT).show();
                    }else {
                        Toast.makeText(getApplicationContext(), "插入失败", Toast.LENGTH_SHORT).show();
                    }
                    Log.d("aa", a+"");
                    edittext.setText("");
                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
                    loadData();
                 }else {
                     Toast.makeText(getApplicationContext(), "请输入数据", Toast.LENGTH_SHORT).show();
                       }
                }
            });
              loadData();
        }
        
        public void loadData(){
            DbHelpe db  = new DbHelpe(getApplicationContext());
            List<String> data = db.getAllLabels();
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
            ArrayAdapter<String> listadapter  =  new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);
            list.setAdapter(listadapter);
            
        }
        
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // TODO Auto-generated method stub
            DbHelpe db  = new DbHelpe(getApplicationContext());
            db.getReadableDatabase();
            String data = arg0.getItemAtPosition(arg2).toString();
            Log.d("sss", data);
            db.delete(data);
            loadData();
        }
    }
  • 相关阅读:
    个人知识管理的29个原则
    c#正则表达式
    sql 获取一个周的周一和周日
    分享2012年地址区域结构(基于标准行政区域代码、内含邮编)
    测试平台系列(5)项目管理页面(2)
    测试平台系列(1)环境搭建
    测试平台开场仪式
    测试平台系列(2)前端首页搭建
    测试平台系列(6)项目管理页面(3)
    测试平台系列(8)添加用例页
  • 原文地址:https://www.cnblogs.com/LIANQQ/p/2943010.html
Copyright © 2011-2022 走看看