Java 通过接口从片段到活动获取HashMap值

Java 通过接口从片段到活动获取HashMap值,java,android,android-fragments,interface,Java,Android,Android Fragments,Interface,我想使用接口来实现将数据从片段传递到包含onClick事件的活动按钮的通信。我可以看到HashMap可以写入editText字段上有效的数据,但这些值不能发送到activity。一旦我触发活动上的onClick事件,它就会显示错误并停止 我对界面的使用感到困惑。尝试调试后出现以下错误,需要花费大约3天时间处理,但仍然无法解决。任何人都可以推荐或讨论如何解决它,谢谢 错误: Error:(77, 5) error: method does not override or implement a m

我想使用接口来实现将数据从片段传递到包含onClick事件的活动按钮的通信。我可以看到HashMap可以写入editText字段上有效的数据,但这些值不能发送到activity。一旦我触发活动上的onClick事件,它就会显示错误并停止

我对界面的使用感到困惑。尝试调试后出现以下错误,需要花费大约3天时间处理,但仍然无法解决。任何人都可以推荐或讨论如何解决它,谢谢

错误:

Error:(77, 5) error: method does not override or implement a method from a supertype
Error:(39, 8) error: Fragment_step_2 is not abstract and does not override abstract method onPassValueStep2() in onPassValue2
Error:(231, 32) error: method onPassValueStep1 in class Fragment_step_1 cannot be applied to given types;
required: HashMap
found: no arguments
reason: actual and formal argument lists differ in length
Error:(232, 32) error: method onPassValueStep2 in class Fragment_step_2 cannot be applied to given types;
required: HashMap
found: no arguments
reason: actual and formal argument lists differ in length
Error:(78, 5) error: method does not override or implement a method from a supertype
Error:(36, 8) error: Fragment_step_1 is not abstract and does not override abstract method onPassValueStep1() in onPassValue

主要活动:

public interface onPassValue{
    Map<Object, String> onPassValueStep1();
}

public interface onPassValue2{
    Map<Object, String> onPassValueStep2();
}

protected void onCreate(Bundle savedInstanceState) {
    ......
    btn_sendInsureInfo.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view){
            //CALL here
            //Fragment_step_1.onPassValueStep1();
            //Fragment_step_2.onPassValueStep2();
            ......
        }
}
......

接口方法的
片段
中的签名错误。您将接口声明为:

public interface onPassValue{
    Map<Object, String> onPassValueStep1();
}

public interface onPassValue2{
    Map<Object, String> onPassValueStep2();
}

公共接口onPassValue{
映射到passvaluestep1();
}
公共接口onPassValue2{
映射到passvaluestep2();
}
在片段中,你有公共的

public Map<Object, String> onPassValueStep1(HashMap insureResult) {
passvaluestep1上的公共映射(HashMap-insureResult){
Map onPassValueStep2(HashMap-insureapplicationstep2){

正如您所注意到的,接口中声明的方法没有参数


您可以更改界面中的方法声明,添加缺少的参数,或者更改
片段中的方法,谢谢您的帮助。我在这里犯了一个粗心的错误。:')我如何通过单击按钮调用这些HashMap值?@Blackbelt确实在activity上声明HashMap,并调用getHashMapStep1.onPassValueStep1(保险应用程序)…在activity onClick事件上?您必须修改接口。例如
映射到PassValueStep1(映射到保险结果);
(对另一个执行相同操作)。仅修改activity onClick事件接口中的实例??谢谢。
公共接口onPassValueStep1((映射到保险结果);}
公共接口onPassValue2{Map onPassValueStep2(映射保险结果);}
residentAddress.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}

        @Override
        public void afterTextChanged(Editable editable) {
            residentAddress.setOnFocusChangeListener(new View.OnFocusChangeListener(){
                @Override
                public void onFocusChange(View view, boolean isFocus){
                    if(!isFocus){
                        if("".trim().equals(residentAddress.getText().toString())){
                            rAddress.setError("Resident Address is required.");
                            strAddress = "";
                            insureApplicant2.put(2, strAddress);
                        } else {
                            rAddress.setErrorEnabled(false);
                            rAddress.setError(null);
                            strAddress = residentAddress.getText().toString().trim();
                            insureApplicant2.put(2, strAddress);

                            onPassValueStep2(insureApplicant2);

                        }
                    }
                }
            });

        }
    });
public interface onPassValue{
    Map<Object, String> onPassValueStep1();
}

public interface onPassValue2{
    Map<Object, String> onPassValueStep2();
}
public Map<Object, String> onPassValueStep1(HashMap insureResult) {