Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将对话框片段中的数据返回到活动适配器?_Java_Android - Fatal编程技术网

Java 如何将对话框片段中的数据返回到活动适配器?

Java 如何将对话框片段中的数据返回到活动适配器?,java,android,Java,Android,我正在显示活动适配器中的一个对话框片段,对话框片段中有一个EditText和一些其他视图。我必须将一些数据直接返回给活动,适配器单击对话框绘图中的更新按钮,我可以将数据传递给活动,但不能将数据传递给适配器。我的适配器侦听器不工作 public class MyDialogFragment extends android.support.v4.app.DialogFragment { private OnItemUpdateListenerDialog onItemUpdateLi

我正在显示活动适配器中的一个对话框片段,对话框片段中有一个EditText和一些其他视图。我必须将一些数据直接返回给活动,适配器单击对话框绘图中的更新按钮,我可以将数据传递给活动,但不能将数据传递给适配器。我的适配器侦听器不工作

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刷新活动