80,490
社区成员
发帖
与我相关
我的任务
分享

import android.app.Activity;
import android.content.Intent;
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.widget.Button;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends Activity {
MyDatabaseHelper dbHelper;
Button insert=null;
Button search=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper=new MyDatabaseHelper(this,"myDict.db3",1);
insert=(Button)findViewById(R.id.insert);
search=(Button)findViewById(R.id.search);
insert.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String word=((EditText)findViewById(R.id.word)).getText().toString();
String detail=((EditText)findViewById(R.id.detail)).getText().toString();
insertData(dbHelper.getReadableDatabase(), word, detail);
Toast.makeText(MainActivity.this, "添加生词成功!", Toast.LENGTH_SHORT).show();
}
});
search.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String key=((EditText)findViewById(R.id.key)).getText().toString();
Cursor cursor=dbHelper.getReadableDatabase().rawQuery("select * from dict where word like ? or detail like ?", new String[]{"%" + key + "%", "%" + key + "%"});
Bundle data=new Bundle();
data.putSerializable("data",converCursorToList(cursor));
Intent intent=new Intent(MainActivity.this,ResultActivity.class);
intent.putExtras(data);
startActivity(intent);
}
});
}
public ArrayList<Map<String,String>>converCursorToList(Cursor cursor){
ArrayList<Map<String,String>> result=new ArrayList<Map<String, String>>();
while (cursor.moveToNext()){
Map<String,String> map=new HashMap<>();
map.put("word",cursor.getString(1));
map.put("detail",cursor.getString(2));
result.add(map);
}
return result;
}
public void insertData(SQLiteDatabase db,String word,String detail){
db.execSQL("insert into dict values(null,?,?)",new String[]{word,detail});
}
public void onDestroy(){
super.onDestroy();
if (dbHelper!=null){
dbHelper.close();
}
}
}
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyDatabaseHelper extends SQLiteOpenHelper {
final String CREATE_TABLE_SQL="create table dict(_id integer primary"+"key autoincrement,word,detail)";
public MyDatabaseHelper(Context context,String name,int version){
super(context,name,null,version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("--------onUpdate Called--------"+oldVersion+"--->"+newVersion);
}
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.List;
import java.util.Map;
/**
* Created by korbe on 2015/11/16.
*/
public class ResultActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
ListView listView=(ListView) findViewById(R.id.show);
Intent intent=getIntent();
Bundle data=intent.getExtras();
@SuppressWarnings("unchecked")
List<Map<String,String>> list=(List<Map<String,String>>)data.getSerializable("data");
SimpleAdapter adapter=new SimpleAdapter(ResultActivity.this,list,R.layout.line,new String[]{"word","detail"},new int[]{R.id.word,R.id.detail});
listView.setAdapter(adapter);
}
}01-11 13:33:03.466 14736-14736/com.example.korbe.myenglishword E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.korbe.myenglishword, PID: 14736
android.database.sqlite.SQLiteException: near "autoincrement": syntax error (code 1): , while compiling: create table dict(_id integer primarykey autoincrement,word,detail)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605)
at com.example.korbe.myenglishword.MyDatabaseHelper.onCreate(MyDatabaseHelper.java:18)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
at com.example.korbe.myenglishword.MainActivity$1.onClick(MainActivity.java:37)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)