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
问题可能是未初始化DatabaseHelper。
像这样在监听器之前初始化。
myDB = new DatabaseHelper(this);
还有另一个问题。您的方法insertData需要类型为String的参数,但是您正在传递类型为EditText的对象。
您需要使用EditText获取String
String s = editText.getText()