該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
運行程序,不知道為何點插入數據按鈕會報錯,請萬能的吧友幫我看看,謝謝,不廢話,直接上代碼
MainActivity.java
package com.example.activity16;
import android.support.v7.app.ActionBarActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
private Button createButton;
private Button upDatabaseButton;
private Button insertButton;
private Button updateButton; //聲明
private Button queryButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createButton =(Button)findViewById(R.id.createButton);
upDatabaseButton=(Button)findViewById(R.id.upDatabaseButton);
insertButton=(Button)findViewById(R.id.insertButton); //聲明
updateButton=(Button)findViewById(R.id.updateButton);
queryButton=(Button)findViewById(R.id.queryButton);
createButton.setOnClickListener(new CreateListener());
upDatabaseButton.setOnClickListener(new UpDatabaseListener());
insertButton.setOnClickListener(new InsertListener());
updateButton.setOnClickListener(new UpdateListener());
queryButton.setOnClickListener(new QueryListener());
}
class CreateListener implements OnClickListener{
@Override
public void onClick(View v) {
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"tom_db", null, 1);
SQLiteDatabase db=dbHelper.getReadableDatabase();
//只用調用了這個方法,才會創建,打開數據庫
}
}
class UpDatabaseListener implements OnClickListener{
@Override
public void onClick(View v) {
DatabaseHelper dbHelper =new DatabaseHelper(MainActivity.this, "tom_db", null, 2);
SQLiteDatabase db =dbHelper.getWritableDatabase();
//更新數據庫的版本
}
}
class InsertListener implements OnClickListener{
@Override
public void onClick(View v) {
System.out.println("insert");
ContentValues values =new ContentValues();
values.put("id",1);
values.put("name", "jack");
//values.put("id",2);
//values.put("name", "lili");
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"tom_db",null,2);
SQLiteDatabase db=dbHelper.getWritableDatabase();
//獲得一個可寫的數據庫
db.insert("user", null, values);
//調用insert方法,把數據插入數據庫中
}
}
class UpdateListener implements OnClickListener{
@Override
public void onClick(View v) {
System.out.println("update");
ContentValues values=new ContentValues();
values.put("name","Jim");
DatabaseHelper dbHelper =new DatabaseHelper(MainActivity.this,"tom_db",null,2);
SQLiteDatabase db=dbHelper.getWritableDatabase();
db.update("user", values, "id=?", new String[]{"2"});
}
}
class QueryListener implements OnClickListener{
@Override
public void onClick(View v) {
DatabaseHelper dbHelper =new DatabaseHelper(MainActivity.this,"tom_db",null,2);
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor =db.query("user", new String[]{"id","name"}, "id=?",new String[]{"1"}, null, null,null);
while(cursor.moveToNext()){
String name=cursor.getString(cursor.getColumnIndex("name"));
System.out.println("query------>"+name);
}
}
}
}
DatabaseHelper.java
package com.example.activity16;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper{
private static final int VERSION=1;
public DatabaseHelper(Context context, String name, CursorFactory factory,int version) {
super(context, name, factory, version);
}//在SQLitOpenHelper的子類中,必須有該構造函數
@Override
public void onCreate(SQLiteDatabase db) {
//創建一個數據庫
System.out.println("create a DataBase");
db.execSQL("create table user(id int name VARCHAR(20))");
//execSQL函數用于執行SQL語句
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("updatabase");
}
}
關于布局的XML文件我就不發了,請大神指點