modularizzare codice android
Salve ragaazzi! è brutto essere alle prime armi! mi viene spontaneo programmare con le regole del java.... dimentico che in android occorre rispettare la "discendenza" activity, intent, service ecc...
In pratica io ho programmato sempre in modo modulare. e vorrei fare così anche con android.
In pratica, io ho vari alertdialog che come spiegato nel tutorial li costruisco in uno switch e li richiamo nell'oncreate() con showdialog(int).
Ora io questo lo devo modularizzare, nel senso che devo poter accedere allo switch ogni qual volta che mi serve richiamare un alertdialog. Magari col codice mi spiego meglio:
codice alertdialogsystem dove è implementato lo switch, uguale a quello del tutorial, e a cui ringrazio Orochi :
codice:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class AlertDialogsystem extends Activity{
static final int DIALOG_PAUSED_ID = 0;
static final int DIALOG_GAMEOVER_ID = 1;
public Dialog onCreateDialog(int id) {
Dialog dialog = null;
switch(id) {
case DIALOG_PAUSED_ID:
// do the work to define the pause Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// MyActivity.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
dialog = builder.create();
break;
case DIALOG_GAMEOVER_ID:
// do the work to define the game over Dialog
break;
default:
dialog = null;
}
return dialog;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
showDialog(DIALOG_PAUSED_ID);
}
}
questo invece è il codice esterno a AlertDialogsytem, in cui voglio chiamare l'alertdialog con int=DIALOG_PAUSED_ID. In pratica quando viene premuto il pulsante "si", dovrebbe apparire l'alertdialog. Ho fatto verie prove. Non badate all'uso del StartActivityOfNeeded() è una delle tante prove.
codice:
si.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int i=AlertDialogsystem.DIALOG_PAUSED_ID;
//showDialog(i, savedInstanceState);
//AlertDialogsystem.showDialog(i);
Intent audio_si=new Intent();
startActivityIfNeeded(audio_si, i);
}
});
mi scuso se mi son dilungato un pò troppo nello spiegare.
Grazie in anticipo a chi saprà aiutarmi.