Ragazzi ho bisogno di voi, spero che qualcuno si degni di aiutami.. allora ho un database con un primary key "id" e devo controllare se un determinato id esiste.. vi posto i codici ce ho scritto:
la funziona che viene richiamata nel database è questa:
codice:
public int checkIdExist(String id) {
// TODO Auto-generated method stub
//se esiste ritorno true altrimenti false
Cursor c = ourDatabase.query(DATABASE_TABLE_LIBROCONTABILE, new String[] {KEY_ROWID}, KEY_ROWID=id, null, null, null, null);
c.moveToFirst();
int result = c.getCount();
return result;
}
e richiamo questa funziona nell'activity cosi:
codice:
String id = nOp.getText().toString(); //predo l'id
if (id.isEmpty() == true){ //se è vuoto mando un errore
Dialog d = new Dialog(this);
d.setTitle("FAILURE");
TextView tv = new TextView(this);
tv.setText("Inserisci il numero dell'operazione!");
d.setContentView(tv);
d.show();
}else {
DatabasePartitaDoppia db = new DatabasePartitaDoppia(this);
db.open();
int ck = db.checkIdExist(id); //qui richiamo il database per controlare se esiste
db.close();
if (ck == 0){ //controllo se le righe di risultato siano = 0 quindi mando un errore
Dialog d = new Dialog(this);
d.setTitle("FAILURE");
TextView tv = new TextView(this);
tv.setText("Inserisci un id esstente!");
d.setContentView(tv);
d.show();
}else{//altrimenti se le righe sono diverse da 0 facio partire l'activity
Intent myint = new Intent(getBaseContext(), ModOperation.class);
myint.putExtra("id", id);
startActivity(myint);
}
}
Controllo se l'id è vuoto, se è vuoto mando un messaggio d'errore, poi faccio la chiamata al database per vedere se mi trova righe per quell id, se il risultato è = 0 mando un mex d'errore altrimenti faccio partire l'activity.
Il problema è che il tutto non funziona non so come mai, il logcat è questo:
codice:
01-27 16:50:12.037: E/AndroidRuntime(5772): FATAL EXCEPTION: main
01-27 16:50:12.037: E/AndroidRuntime(5772): android.content.res.Resources$NotFoundException: String resource ID #0x1
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.content.res.Resources.getText(Resources.java:260)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.widget.TextView.setText(TextView.java:3646)
01-27 16:50:12.037: E/AndroidRuntime(5772): at com.example.partitadoppia.LibroContabile.onClick(LibroContabile.java:167)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.view.View.performClick(View.java:3558)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.view.View$PerformClick.run(View.java:14152)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.os.Handler.handleCallback(Handler.java:605)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.os.Handler.dispatchMessage(Handler.java:92)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.os.Looper.loop(Looper.java:137)
01-27 16:50:12.037: E/AndroidRuntime(5772): at android.app.ActivityThread.main(ActivityThread.java:4514)
01-27 16:50:12.037: E/AndroidRuntime(5772): at java.lang.reflect.Method.invokeNative(Native Method)
01-27 16:50:12.037: E/AndroidRuntime(5772): at java.lang.reflect.Method.invoke(Method.java:511)
01-27 16:50:12.037: E/AndroidRuntime(5772): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
01-27 16:50:12.037: E/AndroidRuntime(5772): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
01-27 16:50:12.037: E/AndroidRuntime(5772): at dalvik.system.NativeStart.main(Native Method)