Я столкнулся с неизвестной ошибкой при вставке данных в базу данных.В LogCat отображалось «невозможно вставить данные», однако код, который я использовал, скопирован из другого действия (которое работает).
достаточно странно, когда я поместил код в onStart()
метод, это работает.но когда я поместил в свой onClick()
, это не удалось.
onStart()
: <- не уверен, связано ли это с ошибкой </p>
@Override
public void onStart() {
super.onStart();
dbopener = new DB_Route_ListOpener(this);
try {
dbopener.createDatabase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}//create database
try {
dbopener.openDatabase();
}catch(SQLException sqle){
throw sqle;
}//open database
// Configure the listview
routeItems = new ArrayList<String>(dbopener.selectData(new String [] {"RouteName"}, null, null, null, null, null));
routeListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,routeItems);
routeListItem = (ListView)this.findViewById(R.id.mlt_route_list_route);
routeListItem.setAdapter(routeListAdapter);
routeListItem.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
dbopener.close();
}//onStart
onClick()
:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == findViewById(R.id.mlt_route_btn_addroute))//add
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
builder.setMessage("Add name ?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
dialog.dismiss();
ContentValues cv = new ContentValues();
cv.put("RouteName", "test");
dbopener.insertData(null, cv);
}
});//clear all data
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
dialog.cancel();
}
});//negative
builder.create().show();
}//if
мой запрос на вставку:
public void insertData (String nullColumnHack, ContentValues values) {
try
{
myDatabase.insert(DB_TABLE, nullColumnHack, values);
} catch (Exception e) {
Log.e("Error :","unable to insert data");
}//catch
}//insertData