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