Вылетает Android приложение: Could not execute method of the activity

Рейтинг: 1Ответов: 1Опубликовано: 04.03.2015

Приложение вылетает при данном моменте кода.

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);

    }
}

Ответы

▲ 1Принят

Решено. Вместо этого кода:

AutoCompleteTextView auto_compl_text_v = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);

Надо было:

auto_compl_text_v = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);