我有一个问题。我有一个android应用程序,我在其中使用了几个活动,除了main之外,其中一些我有表单在sqlite数据库中记录数据。问题是,当试图通过按钮存储信息时,我没有得到应用程序的任何响应。它不会出现任何错误,但也不会创建数据库或执行该方法。就好像他没有按下按钮一样。我使用的是Android Studio 3.0.1和SQLite。拜托,我希望你能指导我。谢谢。
我附上了其中一项数据注册活动中使用的代码。
/*SQLite class*/
public class SqlDB extends SQLiteOpenHelper {
private static final int version=1;
private static final String name="DB_Proyecto";
public SqlDB(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
public SqlDB(Context context){
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS Ars (idArs INT PRIMARY KEY AUTOINCREMENT NOT NULL, NameArs TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
/ * AddArs类。从这里我尝试在db ... * /
中插入数据public class AddArs extends AppCompatActivity implements View.OnClickListener {
EditText et1;
Button bt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_ars);
et1 = (EditText)findViewById(R.id.etNombre);
bt1 = (Button)findViewById(R.id.btEnvia);
bt1.setOnClickListener(this);
}
public void GrabaDatos(){
String nombreArs = et1.getText().toString();
SqlDB sqlDB = new SqlDB(this, "DB_Proyecto", null, 1);
SQLiteDatabase dbase = sqlDB.getWritableDatabase();
if(dbase !=null){
ContentValues nuevoRegistro = new ContentValues();
nuevoRegistro.put("NameArs", nombreArs);
dbase.insert("Ars", null, nuevoRegistro);
Toast.makeText(this, "Registro Creado.", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bt1:
GrabaDatos();
break;
/*case by other buttons*/
}
}
}
答案 0 :(得分:1)
您没有正确引用按钮ID。
正确的ID为R.id.btEnvia
:
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btEnvia:
GrabaDatos();
break;
/*case by other buttons*/
}
}