无法解析构造函数'Order(Java.lang.string,Java.lang.string,Java.lang.string,void,void)

时间:2019-03-15 12:44:45

标签: android constructor-injection

对于我的android项目,大多数数据都从数据库中保存,我的应用程序将提取它。但是,我有两个对话框,将日期设置为两个文本视图,然后将其保存到数据库中。我正在尝试使用currentBeach.setCheckIn(checkInTV.getText()。toString()),这会使我的程序在构造函数上出现错误。这里的解决方案是什么?

Details.java

btnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Database(getBaseContext()).addToCart(new Order(
                    menuID,
                    currentBeach.getName(),
                    currentBeach.getPrice(),
                    currentBeach.setCheckIn(checkInTV.getText().toString()),
                    currentBeach.setCheckOut(checkOutTV.getText().toString())
            ));
            Intent intent = new Intent(details.this, Cart.class);
            startActivity(intent);

        }
    });

Order.Java(构造函数)

public Order(String productId, String productName, String description, String price, String checkIn, String checkOut) {
    ProductId = productId;
    ProductName = productName;
    Description = description;
    Price = price;
    this.checkIn = checkIn;
    this.checkOut = checkOut;
}

请帮帮我。谢谢大家:)

1 个答案:

答案 0 :(得分:0)

您没有在description构造函数中将Order作为参数传递

您在Order内部传递5个参数时,您的btnSubmit.setOnClickListener()构造函数有6个参数

另一个问题是currentBeach.setCheckIn(checkInTV.getText().toString())currentBeach.setCheckOut(checkOutTV.getText().toString(),当您需要在String构造函数

中传递Order值时,此方法返回 void

示例代码

btnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Database(getBaseContext()).addToCart(new Order(
                    menuID,
                    currentBeach.getName(),
                   "description",// pass descriptiion here
                    currentBeach.getPrice(),
                    checkInTV.getText().toString(),
                    checkOutTV.getText().toString())
            ));
            Intent intent = new Intent(details.this, Cart.class);
            startActivity(intent);

        }
    });