无法解析构造函数'Beach(java.lang.string,java.lang.string)'

时间:2019-02-18 09:47:20

标签: android-fragments

我在一个片段中实现了一个上传图像。我有一个名为Beach.java的模型。但是,我遇到错误

  

无法解析构造函数'Beach(java.lang.string,   java.lang.string)'on newBeach = new   海滩(beach_name.getText()。toString(),uri.toString());

这是HomeFragment中的代码:

        imageFolder.putFile(saveUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        mDialog.dismiss();
                        Toast.makeText(getActivity(), "Uploaded", Toast.LENGTH_SHORT).show();
                        imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                            @Override
                            public void onSuccess(Uri uri) {
                                newBeach = new Beach(beach_name.getText().toString(), uri.toString());
                            }
                        });
                    }
                })

这是Beach.class中的代码:

public class Beach {
private String name, image, description, price, menuID;

public Beach() {
}

public Beach(String name, String image, String description, String price, String menuID) {
    this.name = name;
    this.image = image;
    this.description = description;
    this.price = price;
    this.menuID = menuID;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getPrice() {
    return price;
}

public void setPrice(String price) {
    this.price = price;
}

public String getMenuID() {
    return menuID;
}

public void setMenuID(String menuID) {
    this.menuID = menuID;
}
}

2 个答案:

答案 0 :(得分:0)

您的Beach类定义了2个构造函数,其中一个没有参数:

 public Beach()

,其中一个包含5个字符串:

public Beach(String name, String image, String description, String price, String menuID)

然后尝试用2个字符串调用构造函数,这在哪里都找不到:

new Beach(beach_name.getText().toString(), uri.toString());

所以您应该将以下构造函数添加到Beach类中:

public Beach(String name, String image) {
    this.name = name;
    this.image = image;
}

答案 1 :(得分:0)

您没有带有2个String参数的构造函数。 您可以使用以下命令初始化Beach类:

new Beach(name, image, description, price, menuID)

或搭配

new Beach()

如果要仅使用2个字符串创建,请添加另一个构造函数:

public Beach(String name, String image){....}