2019 Jun. 30.
2019 Jun. 29.
2019 Jun. 22.
2019 May 31.
2019 May 30.
参照元
https://developer.android.com/guide/topics/ui/dialogs
https://akira-watson.com/android/alertdialog.html
http://furudate.hatenablog.com/entry/2014/01/09/162421
[MainActivity]
2019 Jun. 29.
2019 Jun. 22.
2019 May 31.
2019 May 30.
参照元
https://developer.android.com/guide/topics/ui/dialogs
https://akira-watson.com/android/alertdialog.html
http://furudate.hatenablog.com/entry/2014/01/09/162421
[MainActivity]
package YOUR.PACKAGE.alertdialogsample;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button button_dialog1, button_dialog2, button_dialog3;
private TextView text_view;
private FragmentManager flagmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text_view = findViewById(R.id.text_view);
button_dialog1 = findViewById(R.id.button_dialog1);
button_dialog2 = findViewById(R.id.button_dialog2);
button_dialog3 = findViewById(R.id.button_dialog3);
// button_dialog1ボタンタップでAlertを表示させる
button_dialog1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flagmentManager = getSupportFragmentManager();
// DialogFragment を継承したAlertDialogFragment1のインスタンス
AlertDialogFragment1 dialogFragment = AlertDialogFragment1.newInstance(100);
// DialogFragmentの表示
dialogFragment.show(flagmentManager, "test alert dialog1");
}
});
// button_dialog2ボタンタップでダイアログのメッセージを変えたAlertを表示させる
// newInstance()への引数を変更してメッセージを変える
button_dialog2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flagmentManager = getSupportFragmentManager();
// DialogFragmentを継承したAlertDialogFragment2のインスタンス
AlertDialogFragment1 dialogFragment = AlertDialogFragment1.newInstance(200);
// DialogFragmentの表示
dialogFragment.show(flagmentManager, "test alert dialog2");
}
});
// button_dialog3ボタンタップでItemを選択するAlertを表示させる
button_dialog3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flagmentManager = getSupportFragmentManager();
// DialogFragment を継承したAlertDialogFragmentのインスタンス
AlertDialogFragment2 dialogFragment = new AlertDialogFragment2();
// DialogFragmentの表示
dialogFragment.show(flagmentManager, "test alert dialog");
}
});
}
public void setTextView(String message){
text_view.setText(message);
}
/*
* DialogFragmentを継承したクラスAlertDialogFragment1
*/
public static class AlertDialogFragment1 extends DialogFragment {
/*
* コンストラクタを記述してはならない。
* newInstance()でのsetArguments、onCreateDialog()でのgetArgumentsを利用する。
*/
public static AlertDialogFragment1 newInstance( int requestCode) {
AlertDialogFragment1 fragment = new AlertDialogFragment1();
Bundle arguments = new Bundle();
arguments.putInt("reqCode", requestCode);
fragment.setArguments(arguments);
return fragment;
}
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
int requestCode = getArguments().getInt("reqCode");
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
switch (requestCode) {
case 100:
alert.setTitle("Test AlertDialog1");
alert.setMessage("Message is 100");
break;
case 200:
alert.setTitle("Test AlertDialog2");
alert.setMessage("Message is 200");
break;
}
alert.setPositiveButton(R.string.dialog_ok, null);
return alert.create();
}
}
/*
* DialogFragmentを継承したクラスAlertDialogFragment2
*/
public static class AlertDialogFragment2 extends DialogFragment {
// 選択肢のリスト
private String[] menulist = {"選択(1)","選択(2)","選択(3)"};
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
alert.setTitle("Test AlertDialog3");
alert.setItems(menulist, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int idx) {
// 選択1
if (idx == 0) {
setMassage(menulist[0]);
}
// 選択2
else if (idx == 1) {
setMassage(menulist[1]);
}
// 選択3, idx == 2
else{
setMassage(menulist[2]);
}
}
});
return alert.create();
}
private void setMassage(String message) {
MainActivity mainActivity = (MainActivity) getActivity();
if (mainActivity != null) {
mainActivity.setTextView(message);
}
}
}
}