
Android Studio初心者です。
トグルスイッチをダイアログのようにしたいのですが、できますでしょうか?
調べても、そのようなものは出てこないので、困っています。
やりたいこととしては、以下です。
1.drawableにある画像(⚙)を押下する
2.トグルスイッチのダイアログが表示される
3.スイッチをON/OFFどちらかに選択する
4.閉じるボタンで閉じる
JSでしたら、できると思うのですが、
ネイティヴでの開発は初めてなので、手探りです。
どんな手順でやるのか、、、手順だけでも教えて頂けたら
あとは頑張ります。よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
トグルスイッチのレイアウトをXMLで作成し、
Javaで下記のように実装したところ、できました。
Java
1ImageButton setting = (ImageButton) findViewById(R.id.setting_button); 2 3//自作のViewを取得 4LayoutInflater inf = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE); 5final View layout_toggle = inf.inflate(R.layout.toggle_switch,(ViewGroup)findViewById(R.id.toggle)); 6 7//ボタンを押下時、自作のViewが表示 8setting.setOnClickListener(new View.OnCLickListener(){ 9 public void onClic(View v){ 10 AlertDialog.Builder builder = new AleartDialog.Builder(StudyActivity.this); 11 builder.setView(layout); 12 builder.show() 13
表示させるまでできたので、あとはトグルスイッチをON/OFFにした時の処理を実装して行くだけです。
閲覧していただきありがとうございました。
投稿2018/07/31 05:47

退会済みユーザー
総合スコア0
0
アプリ開発してまだ日が浅いのですが、もし参考になれば・・・
質問者様のやりたいことはDialogFragmentを使えばできると思います。
まず、activity内でボタンを押したらDialogFragmentを出現させるコードを書く。
そこでDialogFragmentfragmentのレイアウトファイルにトグルボタンをセットし、トグルでやりたい処理をDialogFragment内のコードで取得すればよいと思います。(戻るボタンも同様)
以下は私のコードを改良したものです。戻るボタンの処理だけが書いてあります。
参考までに・・・
java
1 2public class ToguruFragment extends DialogFragment { 3 static View content; 4 Dialog toguruDialog; 5 6 public LogFragment() { 7 // Required empty public constructor 8 } 9 10 @Override 11 public Dialog onCreateDialog(Bundle savedInstanceState) { 12 logDialog=super.onCreateDialog(savedInstanceState); 13 //ダイアログの外をクリックしたもダイアログが閉じないようにする 14 logDialog.setCanceledOnTouchOutside(false); 15 return toguruDialog; 16 } 17 18 @Override 19 public View onCreateView(LayoutInflater i, ViewGroup c, Bundle savedInstanceState){ 20 content = i.inflate(R.layout.fragment_toguru, null); 21 logDialog.setContentView(R.layout.fragment_toguru); 22 //レイアウトファイルに配置した戻るボタンを取得 23 Button back =(Button)content.findViewById(R.id.button_back); 24 logback.setOnClickListener(new View.OnClickListener() { 25 @Override 26 public void onClick(View v) { 27 //処理を書く。 28 back(v); 29 } 30 }); 31 return content; 32 } 33 34 private void back(View v) { 35 dismiss(); 36 } 37 38}
投稿2018/07/30 13:05
編集2018/07/30 13:11総合スコア351
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。


あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。