Android中sqlite的學習

來源:互聯網
上載者:User

實現了增加資料,刪除資料,跟查詢。綁定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();    }}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.