私は、アプリケーションの開始時に警告ダイアログを作成して、アプリケーションがWebからダウンロードしているデータをどこに保存するかを選択できるようにします。ここで達成したいのは、内部/外部ストレージのサイズに依存します。選択したアイテムを設定したいと思います。Androidが警告ダイアログで選択した項目を設定しました
@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();
}
そして、私は達成したい他の事、彼は任意の項目を選択しなかった場合はどのように私は警告ダイアログを閉じるには、ユーザーを防ぐことができます:ここで私は、ダイアログを作成するために使用しているコードがあります。戻るボタンを押したとき、または[OK]ボタンをクリックしたときにダイアログを閉じたくない。任意のアイデア/提案/助けが歓迎されています!