ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: Android Studio : 複数選択ダイアログ( DialogFragment )
名前: lightbox
処理選択
パスワード

件名 Android Studio : 複数選択ダイアログ( DialogFragment )
名前 lightbox
コメント
@HTML
<img src="https://lh3.googleusercontent.com/-xUmGlgFAxMI/VgU8IHG3iDI/AAAAAAAAb1w/_xkzVhlFbvA/s400-Ic42/_img.png" style="border: solid 1px #000000">
@HEND

@SHOW
(1) キャンセル不可
(2) 配列をリソースから
@END

@DIV
package sample.lightbox.checkboxdialog2;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.View;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		MainActivity.this.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Log.i("lightbox", "クリックされました");

				MyDialogFragment dialog = new MyDialogFragment();
				@c:red(dialog.setCancelable)(false);
				dialog.show(getFragmentManager(), "dialog");

			}
		});

	}

	public @c:red(static) class MyDialogFragment extends @c:red(DialogFragment) {
		@Override
		public Dialog onCreateDialog(Bundle savedInstanceState) {

			String[] list_data = @c:red(getResources)().getStringArray(R.array.list_01);
			boolean[] list_flg = {false, false, false, false};

			AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
			builder.setTitle("回転可能なダイアログ");

			builder.setMultiChoiceItems(list_data, list_flg, null);

			builder.setNegativeButton("キャンセル", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					Log.i("lightbox", "キャンセルされました");

				}
			});

			builder.setPositiveButton("選択完了", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					Log.i("lightbox", "選択されました");

					SparseBooleanArray sba = ((AlertDialog) dialog).getListView().getCheckedItemPositions();
					Log.i("lightbox", sba.size() + "");
					for (int i = 0; i < sba.size(); i++) {
						int idx_data = sba.keyAt(i);
						String target = ((AlertDialog) dialog).getListView().getAdapter().getItem(idx_data).toString();
						Log.i("lightbox", target);

					}

				}
			});

			return builder.create();
		}
	}
}
@END

[[strings.xml]]
@DIV
<resources>
    <string name="app_name">CheckBoxDialog2</string>

    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

@c:red(    <string-array name="list_01">
        <item>大阪</item>
        <item>東京</item>
        <item>名古屋</item>
        <item>岡山</item>
    </string-array>)

</resources>
@END