这个SQLite程序哪里出错了,怎么还是有错?
package com.haii.android;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
public class SQLiteTestActivity 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="Users";
String ID="_id";
String USER_NAME="user_name";
String ADDRESS="address";
String TELEPHONE="telephone";
String MAIL_ADDRESS="mail_address";
}
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// getIntent().setData(Uri.parse("content://com.haii.provider.testprovider"));
// final Uri uri_test=getIntent().getData();
setContentView(R.layout.main);
final EditText mEditText01=(EditText)findViewById(R.id.editText1);
final EditText mEditText02=(EditText)findViewById(R.id.editText2);
final EditText mEditText03=(EditText)findViewById(R.id.editText3);
final EditText mEditText04=(EditText)findViewById(R.id.editText4);
helper=new DBConnection(this);
final SQLiteDatabase db=helper.getWritableDatabase();
final String[] FROM={
UserSchema.ID,
UserSchema.USER_NAME,
UserSchema.TELEPHONE,
UserSchema.ADDRESS,
UserSchema.MAIL_ADDRESS
};
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();
Spinner spinner=(Spinner)findViewById(R.id.spinner1);
spinner.setAdapter(new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list));
spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String user_name=((Spinner)parent).getSelectedItem().toString();
//Cursor c=managedQuery(uri_test,FROM,"user_name='"+user_name+"'",null,null);
Cursor c=db.query("Users", FROM, "user_name='"+user_name+"'", null,null,null,null);
c.moveToFirst();
id_this=Integer.parseInt(c.getString(0));
String user_name_this=c.getString(1);
String telephone_this=c.getString(2);
String address_this=c.getString(3);
String mail_address_this=c.getString(4);
c.close();
mEditText01.setText(user_name_this);
mEditText01.setText(telephone_this);
mEditText03.setText(address_this);
mEditText04.setText(mail_address_this);
// TODO Auto-generated method stub
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
listener_add=new OnClickListener(){
@Override
public void onClick(View v) {
ContentValues values=new ContentValues();
values.put(UserSchema.USER_NAME, mEditText01.getText().toString());
values.put(UserSchema.TELEPHONE, mEditText02.getText().toString());
values.put(UserSchema.ADDRESS, mEditText03.getText().toString());
values.put(UserSchema.MAIL_ADDRESS, mEditText04.getText().toString());// TODO Auto-generated method stub
SQLiteDatabase db=helper.getWritableDatabase();
db.insert(UserSchema.TABLE_NAME, null, values);
db.close();
//getContentResolver().insert(uri_test, values);
onCreate(savedInstanceState);
}
};
listener_update=new OnClickListener(){
@Override
public void onClick(View v) {
ContentValues values=new ContentValues();
values.put(UserSchema.USER_NAME, mEditText01.getText().toString());
values.put(UserSchema.TELEPHONE, mEditText02.getText().toString());
values.put(UserSchema.ADDRESS, mEditText03.getText().toString());
values.put(UserSchema.MAIL_ADDRESS, mEditText04.getText().toString());
String where=UserSchema.ID+" = "+id_this;// TODO Auto-generated method stub
SQLiteDatabase db=helper.getWritableDatabase();
db.update(UserSchema.TABLE_NAME, values, where, null);
db.close();//getContentResolver().update(uri_test, values, where, null);
onCreate(savedInstanceState);// TODO Auto-generated method stub
}
};
listener_delete=new OnClickListener(){
@Override
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);// TODO Auto-generated method stub
onCreate(savedInstanceState);
}
};
listener_clear=new OnClickListener(){
@Override
public void onClick(View v) {
mEditText01.setText("");
mEditText02.setText("");
mEditText03.setText("");
mEditText04.setText("");
// TODO Auto-generated method stub
}
};
button_add=(Button)findViewById(R.id.button1);
button_add.setOnClickListener(listener_add);
button_update=(Button)findViewById(R.id.button2);
button_update.setOnClickListener(listener_update);
button_delete=(Button)findViewById(R.id.button3);
button_delete.setOnClickListener(listener_delete);
button_clear=(Button)findViewById(R.id.button4);
button_clear.setOnClickListener(listener_clear);
}
public static class DBConnection extends SQLiteOpenHelper {
private static final String DATABASE_NAME="PhoneBookDB";
private static final int DATABASE_VERSION=1;
public DBConnection(Context ctx) {
super(ctx,DATABASE_NAME,null,DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql="CREATE TABLE "+UserSchema.TABLE_NAME+ " ("+UserSchema.ID+" INTEGER primary key autoincrement, "+UserSchema.TABLE_NAME+" text not null, "
+UserSchema.TELEPHONE+" text not null, "
+UserSchema.ADDRESS+" text not null, "
+UserSchema.MAIL_ADDRESS+" text not null "+");";
db.execSQL(sql);// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
}
[解决办法]