我通過啓動對話框的適配器調用接口函數。 我想根據用戶與對話框的交互方式來更新回收者視圖列表,即他是否按下了正向按鈕或負向按鈕。我現在面臨更新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中使用了什麼樣的全局變量?向我們顯示代碼 –