package net.learn2develop.Databases;
/**
* @author 作者1Wei-Meng Lee
* @version 创建时间:不详
*
* @author 作者2:宋倩楠 & blog.csdn.net/haimian520
* @version 创建时间:2015年11月18日
*
*/
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.DialerFilter;
import android.widget.EditText;
import android.widget.Toast;
public class DatabasesActivity extends Activity implements OnClickListener,OnItemClickListener{
/** Called when the activity is first created. */
Button btn1, btn2, btn3;
AutoCompleteTextView autoCTV;
EditText editTxt;
static String[] autoString ;
ArrayAdapter<String> arrAdapter;
static ArrayList<String> list;
private static final int ITEM1 = Menu.FIRST;
private static final int ITEM2 = Menu.FIRST+1;
private static final int ITEM3 = Menu.FIRST+2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button) findViewById(R.id.button1);
// btn2 = (Button) findViewById(R.id.button2);
// btn3 = (Button) findViewById(R.id.button3);
//
btn1.setOnClickListener(this);
// btn2.setOnClickListener(this);
// btn3.setOnClickListener(this);
//
autoCTV = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
editTxt = (EditText)findViewById(R.id.editText1);
DBAdapter db = new DBAdapter(this);
/*
//---add a contact---
db.open();
long id = db.insertContact("Wei-Meng Lee", "weimenglee@learn2develop.net");
id = db.insertContact("Mary Jackson", "mary@jackson.com");
db.close();
*/
/*
//--get all contacts---
db.open();
Cursor c = db.getAllContacts();
if (c.moveToFirst())
{
do {
DisplayContact(c);
} while (c.moveToNext());
}
db.close();
*/
/*
//---get a contact---
db.open();
Cursor c = db.getContact(2);
if (c.moveToFirst())
DisplayContact(c);
else
Toast.makeText(this, "No contact found", Toast.LENGTH_LONG).show();
db.close();
*/
/*
//---update contact---
db.open();
if (db.updateContact(1, "Wei-Meng Lee", "weimenglee@gmail.com"))
Toast.makeText(this, "Update successful.", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Update failed.", Toast.LENGTH_LONG).show();
db.close();
*/
/*
//---delete a contact---
db.open();
if (db.deleteContact(1))
Toast.makeText(this, "Delete successful.", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Delete failed.", Toast.LENGTH_LONG).show();
db.close();
*/
try {
String destPath = "/data/data/" + getPackageName() +
"/databases";
File f = new File(destPath);
if (!f.exists()) {
f.mkdirs();
f.createNewFile();
//---copy the db from the assets folder into
// the databases folder---
CopyDB(getBaseContext().getAssets().open("mydb"),
new FileOutputStream(destPath + "/MyDB"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//---get all contacts---
db.open();
// Cursor c = db.getAllContacts();
// if (c.moveToFirst())
// {
// do {
// // DisplayContact(c);
// } while (c.moveToNext());
// }
list = new ArrayList<String>();
Cursor c = db.getFoodName();
if(c.moveToFirst()){
do{
//DisplayFoodName(c);
BindFoodName(c);
}while(c.moveToNext());
}
db.close();
// Init autoString
InitAutoString();
arrAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line ,autoString);
autoCTV.setAdapter(arrAdapter);
// autoCTV.setOnItemClickListener(new OnItemClickListener() {
//
// @Override
// public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
// long arg3) {
// // TODO Auto-generated method stub
//
// }
//
// });
}
private void InitAutoString() {
// TODO Auto-generated method stub
autoString = new String[list.size()];
for(int i=0; i< list.size();++i){
autoString[i] = list.get(i);
}
}
private void BindFoodName(Cursor c) {
// TODO Auto-generated method stub
list.add(c.getString(0));
}
// private void DisplayFoodName(Cursor c) {
// // TODO Auto-generated method stub
//// Toast.makeText(this,
//// "Name: " + c.getString(0) + "\n",
//// Toast.LENGTH_LONG).show();
// list.add(c.getString(0));
// }
public void CopyDB(InputStream inputStream,
OutputStream outputStream) throws IOException {
//---copy 1K bytes at a time---
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}
public void DisplayContact(Cursor c)
{
Toast.makeText(this,
"id: " + c.getString(0) + "\n" +
"Name: " + c.getString(1) + "\n" +
"ingredient: " + c.getString(2),
Toast.LENGTH_LONG).show();
}
@Override
public void onClick(View v) {
switch(v.getId()){
// case R.id.button1:
// DBAdapter db = new DBAdapter(this);
// db.open();
//
// Cursor c = db.getAllContacts();
// if(c.moveToFirst()){
// do{
// DisplayContact(c);
// }while(c.moveToNext());
// }
// db.close();
// break;
//
// case R.id.button2:
// DBAdapter db1 = new DBAdapter(this);
// db1.open();
//
// Cursor c1 = db1.getContact(1); // 查找返回
// // 假设返回多项(0,1,2...),使用c.moveToFirst()来获得第一项,如果没有获得任何数据
// // 的使用c.moveToFirst()则为假
// if(c1.moveToFirst()){
// DisplayContact(c1);
// }else{
// Toast.makeText(this, "No item found", Toast.LENGTH_SHORT).show();
// }
// db1.close();
//
// break;
//
case R.id.button1:
String str = autoCTV.getEditableText().toString();
DBAdapter db2 = new DBAdapter(this);
db2.open();
Cursor c2 = db2.getContact(str); // 查找返回
// 假设返回多项(0,1,2...),使用c.moveToFirst()来获得第一项,如果没有获得任何数据
// 的使用c.moveToFirst()则为假
if(c2.moveToFirst()){
// DisplayContact(c2);
ShowInEditText(c2);
}else{
Toast.makeText(this, "No item found", Toast.LENGTH_SHORT).show();
}
db2.close();
break;
}// TODO Auto-generated method stub
}
private void ShowInEditText(Cursor c) {
// TODO Auto-generated method stub
String str = c.getString
评论1
最新资源