我正在显示来自我的 Activity Adapter 的 Dialog Fragment,我在 Dialog fragment 中有一个 EditText 和一些其他视图。我必须将一些数据直接返回给 Activity 和适配器单击对话框拖动中的更新按钮我可以将数据传递给 Activity,但无法将数据传递给适配器。我的适配器侦听器不起作用
public class MyDialogFragment extends android.support.v4.app.DialogFragment
{
private OnItemUpdateListenerDialog onItemUpdateListenerDialog;
private void SetValues(final CartItemDetail item) {
buttUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setValue=editSet.getText().toString();//get value from editText
onItemUpdateListenerDialog.onItemUpdateRequest(addItemToCart(item.getDataOne(), item.getDataTwo()));//listner for activity
onSetChangeListnerDialog.returnData(setValue);//listner for adapter
dismiss();
}
});
}
public interface OnItemUpdateListenerDialog {
void onItemUpdateRequest(JSONObject jsonObject);
}
public void setOnItemUpdateListenerDialog(OnItemUpdateListenerDialog onItemUpdateListener) {
this.onItemUpdateListenerDialog = onItemUpdateListenerDialog;
}
public interface OnSetChangeListenerDialog {
void returnData(String result);
}
public void setOnSetChangeListenerDialog(OnSetChangeListenerDialog onSetUpdateRequest) {
onSetChangeListnerDialog = onSetChangeListnerDialog;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.onItemUpdateListenerDialog = (OnItemUpdateListenerDialog)activity;//activit listner
this.onSetChangeListnerDialog = (OnSetChangeListenerDialog)activity;//adapter listner
}
catch (final ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnCompleteListener");
}
}
}
}
我的适配器类
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
implements View.OnClickListener,MyDialogFragment.OnSetChangeListenerDialog{
@Override
public void returnData(String result) {
setValue = result;
}
}
尝试定义一个外部简单接口:
返回.java
public interface Returning {
void return_value(String value);
}
MyDialogFragment.java
public class MyDialogFragment {
private Returning returning;
buttUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
returning= ((Returning ) context);
returning.return_value("everything");
// ...
}
}
}
我的适配器
public class MyAdapter implements Returning {
// ...
@Override
public void return_value(String value) {
setValue = value;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句