2016-10-31 4 views
-1

я делал этот учебник по Android-студия разработки Основ 6-е издание, учебник был о SQLiteDatase так я написал Evrything, но я продолжал получать ошибку всякий раз, когда я пытаюсь вызвать конструктор продукта все правильно в книге, но я не могу понять это правильно, это найти конструктор товаров и класс продукта.Конструктор не может быть применен

Поиск продукта

public Product findProduct(String productname) { 
    String query = "Select * FROM " + TABLE_PRODUCTS + " WHERE " + 
      COLUMN_PRODUCTNAME + " = " + productname + ";"; 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(query, null); 
    Product product = new Product();// Cannot be applied 
    if (cursor.moveToFirst()) { 
     cursor.moveToFirst(); 
     product.setId(Integer.parseInt(cursor.getString(0))); 
     product.setProductName(cursor.getString(1)); 
     product.setQuantity(Integer.parseInt(cursor.getString(2))); 
     cursor.close(); 
    } else { 
     product = null; 
    } 
    db.close(); 
    return product; 
} 

Мой Продукт класса

public class Product { 
private int id; 
private String ProductName; 
private int Quantity; 

public Product(int _id, String _productname, int _quantity) { 
    this.id = _id; 
    this.ProductName = _productname; 
    this.Quantity = _quantity; 
} 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getProductName() { 
    return ProductName; 
} 

public void setProductName(String productName) { 
    this.ProductName = productName; 
} 

public int getQuantity() { 
    return Quantity; 
} 

public void setQuantity(int quantity) { 
    this.Quantity = quantity; 
} 

}

Спасибо.

+0

Поскольку у вас есть перегруженный конструктор, вы ДОЛЖНЫ добавить пустой класс в класс Product. –

+0

Можете ли вы показать мне, пожалуйста, добавьте пожалуйста ... спасибо @RajithaSiriwardena –

+0

Существует ** не нужно ** быть * пустым * - только * без параметров *. - @Rajitha Siriwardena – MarianD

ответ

3
public Product(int _id, String _productname, int _quantity) { 

является только конструктор в вас Product определения класса (у вас нет каких-либо других), так что вы должны вызвать его конструктор с этими параметрами 3 - вместо

Product product = new Product();// Cannot be applied 

использовать что-то, как

Product product = new Product(132, "Wheel", 1000); 

Другое решение:

Добавить другой конструктор в своем классе Product, кроме существующей одной, е. г. пустой:

public Product() {} 

(он может быть размещен до или после существующего).

+0

Я знаю, что вот как работает конструктор, я пытаюсь получить данные из курсора, не добавляя его самостоятельно –

+0

Вы можете создать объект, а затем * изменить * его свойства с помощью курсора или добавить конструктор без параметров - я продолжу мой ответьте сейчас. – MarianD

2

Если вы создали свой собственный конструктор, по умолчанию он не сгенерирован. Пожалуйста, обратите внимание на Java default constructor Привет