그래서 어댑터 클래스에서 인터페이스 메서드를 호출합니다. 사용자 입력에 따라 List
을 업데이트하고 싶습니다. 나는 그것을 어떻게 성취 할 것인가?android에서 어댑터의 인터페이스 메서드에서 응답을 얻는 방법
어댑터 클래스 :
public class ToDoListAdaptor extends SectionRecyclerViewAdapter < SectionHeader, Action, SectionViewHolder, ChildViewHolder > {
@Override
public void onBindChildViewHolder(final ChildViewHolder holder, final int sectionPosition, final int childPosition, final Action child) {
Context mainActivityContext = Constants.getContext();
if (action_id.equals("pain")) {
if (mainActivityContext != null && mainActivityContext instanceof MainActivity) {
interfaceAdapter = ((HealthVitalsFunction) mainActivityContext);
boolean result = interfaceAdapter.openPainRecordDialog(context, dbHelper, action_id, action_cat_id, action_plan_id, action_name);
if (result)
update(sectionHeaderList, childPosition);
}
}
}
}
문제 내가 업데이 트를 호출 할 수 없습니다 오전()의 경우 입력하여 수행 사용자.
편집 :
@Override
public boolean openPainRecordDialog(final Context context, final DbHelper dbHelper, final String action_id, final String action_cat_id, final String action_plan_id, final String action_name) {
Constants.painData=false;
LayoutInflater layoutInflaterAndroid = LayoutInflater.from(context);
final View mView = layoutInflaterAndroid.inflate(R.layout.pain_record, null);
final AlertDialog dialog = new AlertDialog.Builder(context)
.setView(mView)
.setTitle("")
.setPositiveButton(android.R.string.ok, null)
.setNegativeButton(android.R.string.cancel, null)
.setCancelable(false)
.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
Button positiveButton = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
positiveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Do something
if (dialog != null && ((AlertDialog) dialog).isShowing()) {
dialog.dismiss();
}
Constants.painData = true;
}
});
Button negativeButton = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_NEGATIVE);
negativeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Do something
if (dialog != null && ((AlertDialog) dialog).isShowing()) {
dialog.dismiss();
}
Constants.painData = false;
}
});
}
});
// show it
dialog.show();
return Constants.painData;
}
당신은 recyclerview의 항목을 클릭하면 팝업 대화 상자를 사용하고 있습니까? – Darish
AlertDialog 클래스를 사용하여 사용자 지정 대화 상자를 표시합니다. @Darish –
원하는대로 alertDialog 팝업을 제대로 표시합니까? – Darish