无法在android studio上找到布尔插入的数据库错误

问题描述 投票:0回答:1
public class MainActivity<DatabaseHelper> extends AppCompatActivity {

DatabaseHelper myDb;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    EditText urgtextedit = (EditText) findViewById(R.id.urgtextedit);
    EditText contextedit = (EditText) findViewById(R.id.contextedit);
    EditText restextedit = (EditText) findViewById(R.id.restextedit);
    Button savebutton = (Button) findViewById(R.id.savebutton);

    savebutton.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        boolean isInserted = myDb.insertData(urgtextedit,
                                contextedit, restextedit);
                    }

i然后从boolean isInserted行获得此错误错误:找不到符号boolean isInserted = myDb.insertData(urgtextedit,^符号:方法insertData(EditText,EditText,EditText)位置:DatabaseHelper类型的变量myDb其中DatabaseHelper是类型变量:DatabaseHelper扩展了在类MainActivity中声明的对象

我哪里出错了,我该如何解决

这是我的dbhelper文件

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

/**
 * Created by ProgrammingKnowledge on 4/3/2015.
 */
public class DatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "URC.db";
    public static final String TABLE_NAME = "thoughLog";
    public static final String COL_1 = "ID";
    public static final String COL_2 = "URGE";
    public static final String COL_3 = "CONTRADICTIONS";
    public static final String COL_4 = "RESPONSE";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,URGE TEXT,CONTRADICTIONS TEXT,RESPONSE TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }

    public boolean insertData(String urge, String contradictions, String response) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL_2, urge);
        contentValues.put(COL_3, contradictions);
    contentValues.put(COL_4, response);
    long result = db.insert(TABLE_NAME, null, contentValues);
    if (result == -1)
        return false;
    else
        return true;
    enter code here
java android database android-studio android-studio-3.0
1个回答
0
投票

问题可能是未初始化DatabaseHelper。

像这样在监听器之前初始化。

myDB = new DatabaseHelper(this);

还有另一个问题。您的方法insertData需要类型为String的参数,但是您正在传递类型为EditText的对象。

您需要使用EditText获取String

String s = editText.getText()
© www.soinside.com 2019 - 2024. All rights reserved.