У меня есть класс для отображения настраиваемого диалогового окна
public class Add_Category_Dialog {
public String inputed_value;
private Context context;
public Add_Category_Dialog(Context context){
this.context=context;
}
public void showDialog(){
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle("Title");
alert.setMessage("Message");
final EditText input = new EditText(context);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
inputed_value = input.getText().toString();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
return;
}
});
alert.show();
}
}
Вызов из основного действия:
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.add_category_item:
Add_Category_Dialog add_dialog=new Add_Category_Dialog(getBaseContext());
add_dialog.showDialog();
addCategory(add_dialog.inputed_value);
return true;
}
return false;
}
При запуске в эмуляторе возникает ошибка времени выполнения, LogCat:
android.view.WindowManager $ BadTokenException: невозможно добавить окно - нулевой токен не для приложения
UPD Теперь у меня есть sqlite, код ошибки 19, ограничение не выполнено
private void addCategory(String string){
SQLiteDatabase db=recipes.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(CATEGORY_NAME, string);
db.insertOrThrow(CATEGORY_TABLE, null, values);
}