Вылетает Android приложение: Could not execute method of the activity
Приложение вылетает при данном моменте кода.
public void onClick_AddTask(View v) {
Toast.makeText(MainActivitySpisok.this, "Добавлено успешно :)", Toast.LENGTH_SHORT).show();
ContentValues values = new ContentValues();
values.put(COL_NOM , auto_compl_text_v.getText().toString());
db.insert(TABLE_VILLE, null, values);
refrechListview();
}
Полный код главного класса aktivity
public class MainActivitySpisok extends ActionBarActivity implements View.OnClickListener {
private static final String NOM_BDD = "ville.db";
private final static int MENU_PARAMETRE = 1;
private final static int MENU_QUITTER = 2;
private static final String TABLE_VILLE ="tbville";
private static final String COL_ID = "id_ville";
private static final String COL_NOM = "nom_ville";
private static final int NUM_ID = 0;
private static final int NUM_NOM = 1;
private ListView maListViewPerso;
private SimpleAdapter mSchedule ;
private SQLiteDatabase db ;
private HashMap<String, String> map;
private ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
/** Called when the activity is first created. */
final String LOG_TAG = "myLogs";
DBAdapter myDb;
private ListView listView;
private SQLiteDatabase sqdb;
private String strEdit_T;
private Button btn_Add;
private EditText edt;
private AutoCompleteTextView auto_compl_text_v;
String[] dataC = {"one", "one1", "one2", "one3", "one4", "two", "two1", "two2", "two3", "two4", "three", "four", "five"};//строка для выпадающего списка
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity_spisok);
AutoCompleteTextView auto_compl_text_v = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
btn_Add = (Button) findViewById(R.id.but_Add);
String[] dataX = {"one", "one1", "one2", "one3", "one4", "two", "two1", "two2", "two3", "two4", "three", "four", "five"};
/* String[] countries = getResources().
getStringArray(R.array.list_of_countries);*/
ArrayAdapter adapter1 = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataC);//адаптер для выпадающего списка
auto_compl_text_v.setAdapter(adapter1);//вывод выпадающего списка
//-----Работа со списком-----
maListViewPerso = (ListView) findViewById(R.id.listView1);
ListViewBase maBaseSQLite = new ListViewBase(MainActivitySpisok.this, NOM_BDD, null, 1);
db= maBaseSQLite.getWritableDatabase();
mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.listitem,
new String[] { "id", "nom"}, new int[] { R.id.textView7,R.id.textView8});
maListViewPerso.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//удаление item
final HashMap<String, String> map = (HashMap<String, String>) maListViewPerso.getItemAtPosition(position);
//создадим диалоговое окно
AlertDialog.Builder adb = new AlertDialog.Builder(MainActivitySpisok.this);
//загаловок
adb.setTitle("Delete");
//название пункта для нажатия�
adb.setMessage("Удалить : "+map.get("nom"));
//кнопка OK
adb.setPositiveButton("Да", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
db.delete(TABLE_VILLE, COL_ID + " = " +map.get("id"), null);
refrechListview();
return;
} });
adb.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// не используется
return;
} });
//показывает диалоговое окно
adb.show();
}
});
refrechListview();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main_activity_spisok, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
}
public void onClick_AddTask(View v) {
Toast.makeText(MainActivitySpisok.this, "Добавлено успешно :)", Toast.LENGTH_SHORT).show();
ContentValues values = new ContentValues();
values.put(COL_NOM , auto_compl_text_v.getText().toString());
db.insert(TABLE_VILLE, null, values);
refrechListview();
}
// REFRECH
void refrechListview(){
listItem.clear() ;
Cursor c = db.query(TABLE_VILLE, new String[] { COL_ID, COL_NOM} , null, null, null, null, null);
int col=c.getCount(); // col=0 нет записи , которая проверяет состояние
if (col == 0) {
Toast.makeText(MainActivitySpisok.this, "Нет данных ", Toast.LENGTH_LONG).show();
} else {
c.moveToFirst();
while (c.isAfterLast() == false) {
// conversion int to string
String ch1=""+c.getInt(0);
String ch2=c.getString(1);
map = new HashMap<String, String>();
// поле ID_ville добавляется после Int конвертации строки
map.put("id", ch1);
// Nom_ville поле добавлено после Int конвертации строки
map.put("nom", ch2);
// Добавление в listView
listItem.add(map );
c.moveToNext();
}
}
c.close();
maListViewPerso.setAdapter(mSchedule);
}
}
Класс ListViewBase для работы с БД
public class ListViewBase extends SQLiteOpenHelper {
private static final String TABLE_VILLE ="tbville";
private static final String COL_ID = "id_ville";
private static final String COL_NOM = "nom_ville";
private static final String CREATE_BDD = "CREATE TABLE " + TABLE_VILLE + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL );";
// on insere un utilisteur por le test ;
private static final String sql = "INSERT INTO " + TABLE_VILLE + " ( COL_NOM ) " +
"VALUES (1,'tunis' )";
private static final String sql2 ="INSERT INTO ville VALUES(1,'tunis')";
private static final String sql3 ="INSERT INTO ville VALUES(1,'sfax')";
private static final String sql4 ="INSERT INTO ville VALUES(1,'kef')";
private static final String sql5 ="INSERT INTO ville VALUES(1,'mednine')";
private static final String sql6 ="INSERT INTO ville VALUES(1,'beja')";
public ListViewBase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BDD);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE " + TABLE_VILLE + ";");
onCreate(db);
}
}
Источник: Stack Overflow на русском