Android 保存活动(而非主活动)中的数据
我有个问题。我有一个android应用程序,其中除了main之外,我还使用了几个活动,其中一些活动中我有表单在sqlite数据库中记录数据。问题是,当试图通过按钮存储信息时,我没有从应用程序得到任何响应。它不会出现任何错误,但也不会创建数据库或执行方法。好像他没有按按钮似的。我正在使用Android Studio 3.0.1和SQLite。求你了,我希望你能指引我。多谢各位 我附上数据注册活动中使用的代码Android 保存活动(而非主活动)中的数据,android,android-activity,Android,Android Activity,我有个问题。我有一个android应用程序,其中除了main之外,我还使用了几个活动,其中一些活动中我有表单在sqlite数据库中记录数据。问题是,当试图通过按钮存储信息时,我没有从应用程序得到任何响应。它不会出现任何错误,但也不会创建数据库或执行方法。好像他没有按按钮似的。我正在使用Android Studio 3.0.1和SQLite。求你了,我希望你能指引我。多谢各位 我附上数据注册活动中使用的代码 /*SQLite class*/ public class SqlDB extends S
/*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类。从这里我尝试在数据库中插入数据*/
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*/
}
}
}
您没有正确引用按钮ID 正确的ID是R.ID.btEnvia:
尝试使用断点进行调试?谢谢回答。在调试类AddArs的第44-51行代码时,对应于onClick的代码不会运行,但不会跳过任何错误,因此最终我不知道该如何解决它。好吧……我相信Daniel的答案会解决您的问题。我丢失了按钮的id。
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btEnvia:
GrabaDatos();
break;
/*case by other buttons*/
}
}