Я вызываю функцию интерфейса через адаптер, который запускает диалоговое окно. Я хочу обновить список просмотра ресайклеров на основе того, как пользователь взаимодействует с диалоговым окном, то есть нажимает ли он положительную кнопку или отрицательную кнопку.Ошибка при обновлении списка recyclerview?
Проблема, я столкнулся:
подхода Я попытался, когда пользователь нажимает положительную или отрицательную кнопку обновление глобальных переменных и на основе этого результата выполнения операции. Но проблема, с которой я столкнулась, - это функция, возвращающая глобальное значение еще до того, как пользователь нажмет кнопку ok/cancel.
усыновителя, откуда я звоню функции:
holder.actionTask.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Context mainActivityContext= Constants.getContext();
if (action_id.equals("pain"))
{
if (mainActivityContext!=null && mainActivityContext instanceof MainActivity)
{
interfaceAdapter=((HealthVitalsFunction) mainActivityContext);
interfaceAdapter.openPainRecordDialog(context,dbHelper);
Toast.makeText(context,"Pain "+Boolean.toString(Constant.taskdone), Toast.LENGTH_SHORT).show();
}
}
}
}
openPainRecordDialog функция:
@Override
public boolean openPainRecordDialog(final Context context, final DbHelper dbHelper) {
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("ADD", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
**Constants.taskDone=true;**
})
.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Constants.taskDone=false;
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
return Constants.taskDone;
}
Глобальная переменная:
public class Constants {
public static boolean taskDone;
}
вы можете поделиться какой-то код? –
Я добавил код @SurajRao –
Какую глобальную переменную вы используете в apater? показать нам код –