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);
}
}