Sto creando una finestra di dialogo di avviso all'inizio della mia applicazione per consentire all'utente di scegliere dove archiviare i dati che la mia applicazione sta scaricando dal web. La cosa che voglio ottenere ora dipende dalla dimensione della memoria interna/esterna. Voglio impostare uno degli elementi selezionati. Ecco il codice che sto usando per creare la finestra di dialogo:Android ha impostato la voce selezionata nella finestra di avviso
@SuppressWarnings("static-access")
public void createDialog(){
final CharSequence[] items = {"Phone Memory - "+memorysize+" free space", "SD Card - "+megAvailable+" MB free space"};
final int userId = rpc.getUserId(this);
final String servername = rpc.getCurrentServerName(this);
SharedPreferences stampiiSettings = PreferenceManager.getDefaultSharedPreferences(MyCollectionList.this);
final SharedPreferences.Editor editor = stampiiSettings.edit();
AlertDialog.Builder builder = new AlertDialog.Builder(this.getParent());
builder.setTitle("Select Storage Path");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(item == 0){
rpc.createFoldersInInternalStorage(servername, userId, MyCollectionList.this);
Toast.makeText(getApplicationContext(), "Selected Storage Path : Phone Memory", Toast.LENGTH_SHORT).show();
editor.putInt("storagePath", 1);
editor.commit();
} else if (item == 1){
rpc.createFoldersInExternalStorage(servername, userId, MyCollectionList.this);
Toast.makeText(getApplicationContext(), "Selected Storage Path : SD Card", Toast.LENGTH_SHORT).show();
editor.putInt("storagePath", 2);
editor.commit();
}
}});
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mHandlerUpdateUi.post(mUpdateUpdateUi); // update UI
}
});
AlertDialog alert = builder.show();
}
E un'altra cosa che voglio raggiungere, come posso impedire all'utente di chiudere la finestra di avviso, se non ha scelto alcun elemento. Non voglio chiudere la finestra di dialogo premendo il pulsante Indietro o quando fa clic sul pulsante OK. Qualsiasi idea/suggerimento/aiuto sono ben accetti!