2017-12-06 4 views
0

질문이 있습니다. 나는 여러 가지 활동을 사용하는 안드로이드 응용 프로그램을 가지고 있는데, 이것들 중 일부는 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*/ 
    } 
} 
} 
+0

시도 디버깅 :

정확한 ID는 R.id.btEnvia입니까? – Shaishav

+0

답변 해 주셔서 감사합니다. onClick에 해당하는 클래스 AddArs의 44-51 행의 코드를 디버깅 할 때 실행되지 않지만 결국 오류를 건너 뛰지 않으므로 결국 해결해야 할 작업을 모릅니다. – Edison

+0

좋아요 ... 다니엘의 대답이 당신의 문제를 해결할 것이라고 믿습니다. – Shaishav

답변

1

버튼 ID를 올바르게 참조하지 않습니다. 브레이크 포인트와

@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.btEnvia: 
      GrabaDatos(); 
      break; 
     /*case by other buttons*/ 
    } 
} 
+0

감사합니다. 다니엘. 나는 이드의 이드에서 길을 잃었다. – Edison