У меня небольшая проблема с установкой выбранного по умолчанию элемента в диалоге оповещений. Вот что я использую в своем коде:
if(memory>megAvailable){
selected = 0;
} else if(megAvailable>memory){
selected = 1;
}
AlertDialog.Builder builder = new AlertDialog.Builder(this.getParent());
builder.setTitle("Select Storage Path");
builder.setSingleChoiceItems(items, selected, 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.setNegativeButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mHandlerUpdateUi.post(mUpdateUpdateUi);
}
});
AlertDialog alert = builder.create();
Итак, моя проблема сейчас в том, что я устанавливаю выбранный элемент в зависимости от некоторых вычислений, и если я ничего не выбираю и нажимаю OK, независимо от того, выбран ли я элемент по умолчанию, он снова создает диалоговое окно, потому что это идея, если пользователь ничего не выбрал. Я пытался установить item=selected;
или selected=item;
, но это не работает. Я знаю, что моя проблема логична, но я не могу понять это. Любые предложения, как заставить вещи работать?