Java 如何将对话框片段中的数据返回到活动适配器?
我正在显示活动适配器中的一个对话框片段,对话框片段中有一个EditText和一些其他视图。我必须将一些数据直接返回给活动,适配器单击对话框绘图中的更新按钮,我可以将数据传递给活动,但不能将数据传递给适配器。我的适配器侦听器不工作Java 如何将对话框片段中的数据返回到活动适配器?,java,android,Java,Android,我正在显示活动适配器中的一个对话框片段,对话框片段中有一个EditText和一些其他视图。我必须将一些数据直接返回给活动,适配器单击对话框绘图中的更新按钮,我可以将数据传递给活动,但不能将数据传递给适配器。我的适配器侦听器不工作 public class MyDialogFragment extends android.support.v4.app.DialogFragment { private OnItemUpdateListenerDialog onItemUpdateLi
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");
}
}
}
}
我的适配器类
公共类MyAdapter扩展了RecyclerView.Adapter
实现View.OnClickListener、MyDialogFragment.OnSetChangeListenerDialog{
@凌驾
public void returnData(字符串结果){
设置值=结果;
}
}
尝试定义外部简单界面: 返回.java
public interface Returning {
void return_value(String value);
}
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;
}
}
MyDialogFragment.java
public interface Returning {
void return_value(String value);
}
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;
}
}
MyAdapter.java
public interface Returning {
void return_value(String value);
}
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;
}
}
将此方法添加到对话框类 公共接口EditDialogListener{ 无效接收结果(字符串输入文本); } 当您想要将值返回到主活动时,只需输入此方法
EditDialogListener活动=(EditDialogListener)getActivity();
activity.receiveResult(YourEditText.getText().toString())代码>
现在开始你的活动
公共类YourActivity扩展活动实现EditDialogListener
添加receiveResult
方法
public void receiveResult(字符串str){
textreurned.setText(str);//在活动中设置'editText'的值
}
您是否正在单击开始新活动否..如果用户编辑对话框片段EditText通过回拨返回数据我想在我的onAttach方法问题中,我得到了以下错误java.lang.ClassCastException:com.example.app。MyActivity@2677107必须实现OnCompleteListener..尝试使用外部接口Hai thank u,但我想在适配器中得到结果,而不是活动。实际上,我想根据对话框片段edittext Valaueit更新适配器中的textview。同样的想法,在适配器上实现该方法。你可以说我如何将该值设置为我的视图持有者textview?最好的方法是使用新数据@user8838050刷新活动