public class SplActivity extends Activity implements OnClickListener{
private Button insertBtn, selectBtn,displayBtn;
private ListView mListView;
private SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sql_activity);
mListView=new ListView(this);
BtnInit();
OpenCreateDB();
//单击事件
mListView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
final Cursor c = db.rawQuery("SELECT * FROM HomeLibrary WHERE _id = ?", new String[]{""+(arg2+1)});
if(c.moveToFirst())
{
View view1=LayoutInflater.from(SplActivity.this).inflate(R.layout.dialog, null);
final TextView idd=(TextView) view1.findViewById(R.id.textView1);
final EditText command=(EditText) view1.findViewById(R.id.editText2);
final EditText result=(EditText) view1.findViewById(R.id.editText3);
idd.setText(c.getInt(0)+"");
command.setText(c.getString(1));
result.setText(c.getString(2));
new AlertDialog.Builder(SplActivity.this)
.setTitle("手动修改数据")
.setView(view1)
.setPositiveButton("确定修改", new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ContentValues cv = new ContentValues();
cv.put("command",command.getText().toString());
db.update("HomeLibrary", cv, "_id = ?", new String[]{idd.getText().toString()});
cv.put("result",result.getText().toString());
db.update("HomeLibrary", cv, "_id = ?", new String[]{idd.getText().toString()});
}
}).create().show();
}
}
});
}
public void BtnInit(){
insertBtn=(Button)findViewById(R.id.insert);
selectBtn=(Button)findViewById(R.id.select);
displayBtn=(Button)findViewById(R.id.display);
mListView=(ListView)findViewById(R.id.listview);
insertBtn.setOnClickListener(this);
selectBtn.setOnClickListener(this);
displayBtn.setOnClickListener(this);
}
public class DTData {
int _id;//与所建立的表对应
String command;
String result;
public DTData(String command,String result){
this.command=command;
this.result=result;
}
}
public void OpenCreateDB(){
db = openOrCreateDatabase("/sdcard/douting/HomeLibrary.db", Context.MODE_PRIVATE, null);
//db.execSQL("DROP TABLE IF EXISTS HomeLibrary"); //初始化数据库
//判断文件是否建立了表格,没有这生成表格
db.execSQL("CREATE TABLE IF NOT EXISTS HomeLibrary (_id INTEGER PRIMARY KEY AUTOINCREMENT, command VARCHAR, result VARCHAR)");
}
//加载数据到HomeLibrary表
public void InsertData(){
View view1=LayoutInflater.from(SplActivity.this).inflate(R.layout.dialog, null);
final TextView idd=(TextView) view1.findViewById(R.id.textView1);
final EditText command=(EditText) view1.findViewById(R.id.editText2);
final EditText result=(EditText) view1.findViewById(R.id.editText3);
idd.setText("序号自动生成");
new AlertDialog.Builder(SplActivity.this)
.setTitle("手动加载数据")
.setView(view1)
.setPositiveButton("确定加载", new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
db.execSQL("INSERT INTO HomeLibrary VALUES (NULL,?,?)",
new Object[]{command.getText().toString(),result.getText().toString()});
Log.d("msg","加载成功");
}
}).create().show();
}
public void Find(String str1,int key)
{
List<String> list=new ArrayList<String>();
Cursor c = db.rawQuery("SELECT * FROM HomeLibrary", null);
int[] num = new int[c.getCount()]; //定义和数据库指令条数相等大小的数组
Log.d("msg","--------------全部数据----------------------------");
Log.d("msg",""+str1.length());//获得字符串中的对应字符
int k=0;
while (c.moveToNext()) {
if(c.getString(key).indexOf(str1.charAt(0))>=0)
{
num[k++] = c.getInt(0);
Log.d("msg",""+str1.charAt(0)+num[k-1]);
}
}
//循环匹配到最后一个字符
for (int i = 1; i < str1.length(); i++) {
int j=k=0;
while(num[j]!=0){
c.moveToFirst();
c.move(num[j]-1); //移动的时候要减1,否则会移动到下一个
if(c.getString(key).indexOf(str1.charAt(i))>=0)
{
num[j]=0;
num[k++] = c.getInt(0);
Log.d("msg",""+str1.charAt(i)+num[k-1]);
}
j++;
}
}
c.moveToFirst();
if(num[0]!=0)
c.move(num[0]-1); //移动的时候要减1,否则会移动到下一个
else
c.move(0); //防止都查不到出错
String string=""+c.getInt(0)+" "+c.getString(1)+" "+c.getString(2);
list.add(string);
c.close();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,list);
mListView.setAdapter(adapter);
}
//查找数据
public void Select(){
View view1=LayoutInflater.from(SplActivity.this).inflate(R.layout.dialog, null);
final TextView idd=(TextView) view1.findViewById(R.id.textView1);
final EditText command=(EditText) view1.findViewById(R.id.editText2);
final EditText result=(EditText) view1.findViewById(R.id.editText3);
idd.setText("选择其中一个查询");
new AlertDialog.Builder(SplActivity.this)
.setTitle("手动查询数据")
.setView(view1)
.setPositiveButton("确定查询", new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(command.getText().toString().length()!=0)
Find(command.getText().toString(), 1);
else if(result.getText().toString().length()!=0)
Find(result.getText().toString(), 2);
Log.d("msg","查询成功");
}
}).create().show();
}
//显示数据
public void Display(){
List<String> list=new ArrayList<String>();
Cursor c = db.rawQuery("SELECT * FROM HomeLibrary", null);
while (c.moveToNext()) {
String string=""+c.getInt(0)+" "+c.getString(1)+" "+c.getString(2);
list.add(string);
Log.d("msg",string);
}
c.close();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,list);
mListView.setAdapter(adapter);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.insert:
InsertData();
break;
case R.id.display:
Display();
break;
case R.id.select:
Select();
break;
}
}
}
安卓的小型sql数据库
最新推荐文章于 2023-06-01 12:45:51 发布