方法是未定义的问题

时间:2013-12-10 13:03:40

标签: android android-sqlite

我参与了一个sqlite教程,我认为它很清楚,但我有一个问题。我想创建和读取数据库,但我的代码中有错误。我刚开始使用android和java,所以我需要一些帮助。

我使用了wedstrijdgeschiedenis:

package com.justus.referee;

public class WedstrijdenGeschiedenis {

private int id;
private String thuisclub;
private String bezoekers;

public WedstrijdenGeschiedenis(){}

public WedstrijdenGeschiedenis(String thuisclub, String bezoekers) {
    super();
    this.thuisclub = thuisclub;
    this.bezoekers = bezoekers;
}

//getters & setters

@Override
public String toString() {
    return "Wedstrijd [id=" + id + ", thuis=" + thuisclub + ", Bezoekers=" + bezoekers
            + "]";
}

}

我使用MySqLiteHelper:

package com.justus.referee;

import java.util.LinkedList;
import java.util.List;

import com.justus.referee.WedstrijdenGeschiedenis;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class MySQLiteHelper extends SQLiteOpenHelper {



    // Database Version
    private static final int DATABASE_VERSION = 1;
    // Database Name
    private static final String DATABASE_NAME = "WedstrijdenDB";

    public MySQLiteHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);  
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // SQL statement to create wedstrijdenGeschiedenis table
        String CREATE_WEDSTRIJD_TABLE = "CREATE TABLE wedstrijden ( " +
                "id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
                "thuisclub TEXT, "+
                "bezoekers TEXT )";

        // create wedstrijdenGeschiedeniss table
        db.execSQL(CREATE_WEDSTRIJD_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Drop older wedstrijdenGeschiedeniss table if existed
        db.execSQL("DROP TABLE IF EXISTS wedstrijden");

        // create fresh wedstrijdenGeschiedeniss table
        this.onCreate(db);
    }

    //---------------------------------------------------------------------

    /**
     * CRUD operations (create "add", read "get", update, delete) 
     */

    // WedstrijdenGeschiedeniss table name
    private static final String TABLE_WEDSTRIJD = "wedstrijden";

    // WedstrijdenGeschiedeniss Table Columns names
    private static final String KEY_ID = "id";
    private static final String KEY_THUIS = "thuisclub";
    private static final String KEY_BEZOEKER = "bezoekers";

    private static final String[] COLUMNS = {KEY_ID,KEY_THUIS,KEY_BEZOEKER};

    public void addWedstrijd(WedstrijdenGeschiedenis wedstrijd){
        Log.d("addWedstrijd", wedstrijd.toString());
        // 1. get reference to writable DB
        SQLiteDatabase db = this.getWritableDatabase();

        // 2. create ContentValues to add key "column"/value
        ContentValues values = new ContentValues();
        values.put(KEY_THUIS, wedstrijd.getThuis()); // get thuis 
        values.put(KEY_BEZOEKER, wedstrijd.getBezoeker()); // get bezoeker

        // 3. insert
        db.insert(TABLE_WEDSTRIJD, // table
                null, //nullColumnHack
                values); // key/value -> keys = column names/ values = column values

        // 4. close
        db.close(); 
    }

但是在我的eclipse中,这段代码中有三个错误:

// 2. create ContentValues to add key "column"/value
                ContentValues values = new ContentValues();
                values.put(KEY_THUIS, wedstrijd.getThuis()); // get thuis 
                values.put(KEY_BEZOEKER, wedstrijd.getBezoeker()); // get bezoeker

错误是“ 方法getThuis()未定义类型WedstrijdenGeschiedenis

我找不到这个错误的原因。对不起新手问题!

3 个答案:

答案 0 :(得分:1)

我没有在WedstrijdenGeschiedenis类中看到getThuis()方法。 显然你忘了为变量“thuisclub”和“bezoekers”创建getter。

答案 1 :(得分:1)

将以下方法添加到WedstrijdenGeschiedenis类:

public String getThuis(){
    return thuisclub;
}

public String getBezoekers(){
    return bezoekers;
}

答案 2 :(得分:0)

我忘了确实创造了吸气剂。愚蠢的菜鸟错误(在教程中没有提到)。

我补充说:

public int getId() {
        return id;
}
public void setId(int id) {
        this.id = id;
}
public String getThuis() {
        return thuisclub;
}
public void setThuis(String thuisclub) {
        this.thuisclub = thuisclub;
}
public String getBezoeker() {
        return bezoekers;
}
public void setBezoeker(String bezoekers) {
        this.bezoekers = bezoekers;
}

这使代码工作。谢谢!