У меня есть адаптер, который распространяется ArrayAdapter
. С этим классом адаптера я управляю ListView
внутри MainActivity.
У меня также есть несколько кнопок внутри каждой строки списка, и когда я нажимаю на кнопку, я хочу показать AlertDialog
. При этом я получил ошибку около Theme
.
Я читал об изменении темы внутри моего манифеста, но она не работает, даже если я меняюсь.AlertDialog и ArrayAdapter
holder.delete=(ImageButton)row.findViewById(R.id.delete_btn_item);
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder dialog= new AlertDialog.Builder(getContext());
dialog.setTitle("Deleting...");
dialog.setMessage("You are deleting DEFINITELY <" + db.getAllRecipes().get(position).getRec_name() + ">. Are you sure to continue?");
dialog.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
db.deleteRecipe(db.getAllRecipes().get(position));
dialog.dismiss();
Toast.makeText(getContext(), "deleted " + db.getAllRecipes().get(position).getRec_name(), Toast.LENGTH_SHORT).show();
}
});
dialog.create();
dialog.show();
}
});
У меня есть держатель внутри метода getView. Мои первые строки кода являются:
public class RecipeAdapter extends ArrayAdapter {
DatabaseHelper db;
LayoutInflater layoutInflater;
private Context context;
PopupWindow popUpWndw;
List list= new ArrayList();
public RecipeAdapter(Context context, int resource) {
super(context, resource);
this.context = context;
db=new DatabaseHelper(context.getApplicationContext());
}
Ошибка я получаю это:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
попробуйте изменить 'AlertDialog.Builder dialog = new AlertDialog.Builder (getContext());' to 'AlertDialog.Builder dialog = new AlertDialog.Builder (context)'; –
Кажется, вы смешиваете классы библиотеки поддержки со стандартным. Убедитесь, что ваша активность и диалоги совпадают. – fasteque
Не могли бы вы показать нам свой 'AndroidManifest.xml',' style.xml' и журнал ошибок. –