保存主要

时间:2017-12-06 18:28:40

标签: android android-activity

我有一个问题。我有一个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*/
    }
}
}

1 个答案:

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