대화 상자를 시작하는 어댑터를 통해 인터페이스 함수를 호출합니다. 사용자가 대화 상자와 상호 작용하는 방식, 즉 프레스 포지티브 버튼 또는 네거티브 버튼 중 어느 것을 가지고 있는지에 따라 리사이클 러 뷰 목록을 업데이트하려고합니다. I 직면하고recyclerview 목록을 업데이트하는 중 오류가 발생 했습니까?
문제 : I가 시도
접근 사용자가 양 또는 음의 버튼을 누를 때마다, 글로벌 변수를 갱신하고, 동작이 수행 결과에 기초. 하지만 내가 직면하는 문제는 사용자가 확인/취소 버튼을 누르기 전에도 전역 값을 반환하는 기능입니다.
어답터에서 나는 함수를 호출하고 여기서
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를 추가했습니다 –
당신은 어떤 종류의 전역 변수를 사용합니까? 코드를 표시하십시오 –