Android 保存活动(而非主活动)中的数据

Android 保存活动(而非主活动)中的数据,android,android-activity,Android,Android Activity,我有个问题。我有一个android应用程序,其中除了main之外,我还使用了几个活动,其中一些活动中我有表单在sqlite数据库中记录数据。问题是,当试图通过按钮存储信息时,我没有从应用程序得到任何响应。它不会出现任何错误,但也不会创建数据库或执行方法。好像他没有按按钮似的。我正在使用Android Studio 3.0.1和SQLite。求你了,我希望你能指引我。多谢各位 我附上数据注册活动中使用的代码 /*SQLite class*/ public class SqlDB extends S

我有个问题。我有一个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类。从这里我尝试在数据库中插入数据*/

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*/
    }
}