1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | package com.example.android.provider02; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.AdapterView.OnItemSelectedListener; public class ProviderSQLite extends Activity { OnClickListener listener_add = null; OnClickListener listener_update = null; OnClickListener listener_delete = null; OnClickListener listener_clear = null; Button button_add; Button button_update; Button button_delete; Button button_clear; //# DBConnection helper; public int id_this; public interface UserSchema { String TABLE_NAME = "Taxi"; //計程車名單資料庫 String ID = "_ID"; //編號 String USER_NAME = "_Name"; //姓名 String VENDOR = "_Vendor"; //計程車業者 String TELEPHONE = "_Phone"; //手機號碼 String VIP = "_vip"; //VIP(是或否) String STATUS = "_Status"; //狀態(空車或滿車) String NUMBER = "_Number"; //車號 } /** Called when the activity is first created. */ //SQLiteTest主程式 @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); //取得Content Provider Uri getIntent().setData(Uri.parse("content://com.example.android.provider02.testprovider02")); final Uri uri_test = getIntent().getData(); setContentView(R.layout.main); final EditText mEditText01 = (EditText)findViewById(R.id.EditText01); final EditText mEditText02 = (EditText)findViewById(R.id.EditText02); final EditText mEditText03 = (EditText)findViewById(R.id.EditText03); final EditText mEditText04 = (EditText)findViewById(R.id.EditText04); final EditText mEditText05 = (EditText)findViewById(R.id.EditText05); final EditText mEditText06 = (EditText)findViewById(R.id.EditText06); //建立資料庫PhoneBookDB和表單Table:Users //# helper = new DBConnection(this); //# final SQLiteDatabase db = helper.getWritableDatabase(); final String[] FROM = { UserSchema.ID, UserSchema.USER_NAME, UserSchema.VENDOR, UserSchema.TELEPHONE, UserSchema.VIP, UserSchema.STATUS, UserSchema.NUMBER }; //取得所有資料的USER_NAME,安置在list[]上 //# Cursor c = db.query(UserSchema.TABLE_NAME, new String[] {UserSchema.USER_NAME}, null, null, null, null, null); Cursor c = managedQuery(uri_test, new String[] {UserSchema.USER_NAME}, null, null, null); c.moveToFirst(); CharSequence[] list = new CharSequence[c.getCount()]; for (int i = 0; i < list.length; i++) { list[i] = c.getString(0); c.moveToNext(); } c.close(); //顯示USER_NAME在Spinner表單-spinner上 Spinner spinner = (Spinner)findViewById(R.id.Spinner01); spinner.setAdapter(new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, list)); //在Spinner表單-spinner上選定查詢資料,顯示所有資料在畫面上 spinner.setOnItemSelectedListener(new OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String user_name = ((Spinner)parent).getSelectedItem().toString(); //# Cursor c = db.query("Users", FROM , "user_name='" + user_name + "'", null, null, null, null); Cursor c = managedQuery(uri_test, FROM , "user_name='" + user_name + "'", null, null); c.moveToFirst(); id_this = Integer.parseInt(c.getString(0)); String user_name_this = c.getString(1); String vendor_this = c.getString(2); String telephone_this = c.getString(3); String vip_this = c.getString(4); String status_this = c.getString(5); String number_this = c.getString(6); c.close(); mEditText01.setText(user_name_this); mEditText02.setText(vendor_this); mEditText03.setText(telephone_this); mEditText04.setText(vip_this); mEditText05.setText(status_this); mEditText06.setText(number_this); } public void onNothingSelected(AdapterView<?> parent) { } }); //按下[Add]按鈕時,新增一筆資料 listener_add = new OnClickListener() { public void onClick(View v) { ContentValues values = new ContentValues(); values.put(UserSchema.USER_NAME, mEditText01.getText().toString()); values.put(UserSchema.VENDOR, mEditText02.getText().toString()); values.put(UserSchema.TELEPHONE, mEditText03.getText().toString()); values.put(UserSchema.VIP, mEditText04.getText().toString()); values.put(UserSchema.STATUS, mEditText05.getText().toString()); values.put(UserSchema.NUMBER, mEditText06.getText().toString()); //# SQLiteDatabase db = helper.getWritableDatabase(); //# db.insert(UserSchema.TABLE_NAME, null, values); //# db.close(); getContentResolver().insert(uri_test, values); onCreate(savedInstanceState); } }; //按下[Update]按鈕時,更新一筆資料 listener_update = new OnClickListener() { public void onClick(View v) { ContentValues values = new ContentValues(); values.put(UserSchema.USER_NAME, mEditText01.getText().toString()); values.put(UserSchema.VENDOR, mEditText02.getText().toString()); values.put(UserSchema.TELEPHONE, mEditText03.getText().toString()); values.put(UserSchema.VIP, mEditText04.getText().toString()); values.put(UserSchema.STATUS, mEditText05.getText().toString()); values.put(UserSchema.NUMBER, mEditText06.getText().toString()); String where = UserSchema.ID + " = " + id_this; //# SQLiteDatabase db = helper.getWritableDatabase(); //# db.update(UserSchema.TABLE_NAME, values, where ,null); //# db.close(); getContentResolver().update(uri_test, values, where, null); onCreate(savedInstanceState); } }; //按下[Delete]按鈕時,刪除一筆資料 listener_delete = new OnClickListener() { public void onClick(View v) { String where = UserSchema.ID + " = " + id_this; //# SQLiteDatabase db = helper.getWritableDatabase(); //# db.delete(UserSchema.TABLE_NAME, where ,null); //# db.close(); getContentResolver().delete(uri_test, where, null); onCreate(savedInstanceState); } }; //按下[Clear]按鈕時,清空輸入欄位 listener_clear = new OnClickListener() { public void onClick(View v) { mEditText01.setText(""); mEditText02.setText(""); mEditText03.setText(""); mEditText04.setText(""); mEditText05.setText(""); mEditText06.setText(""); } }; //設定BUTTON0i,i=1,2,3,4的OnClickListener button_add = (Button)findViewById(R.id.Button01); button_add.setOnClickListener(listener_add); button_update = (Button)findViewById(R.id.Button02); button_update.setOnClickListener(listener_update); button_delete = (Button)findViewById(R.id.Button03); button_delete.setOnClickListener(listener_delete); button_clear = (Button)findViewById(R.id.Button04); button_clear.setOnClickListener(listener_clear); } } |
Direct link: https://paste.plurk.com/show/588017