Androidアプリでアラートダイアログ(ラジオ風プルダウン)を作成
今回は下記のようなプルダウンを作成し、選択された文字をテキストビューへセットするというプログラムを作成します。
ボタンとテキストビューの配置
activity_main.xml
<Button
android:id="@+id/button"
style="@android:style/Widget.Holo.Light.Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TEST"
android:textSize="50dp"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
こんな感じになります。
各種設定
MainActivity.java
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
//宣言
private ArrayAdapter<String> adapter;
private Button spinnerButton;
private AlertDialog alertDialog;
private int selectedIndex = 0;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//アダプタの作成
String item[] = {"カジノ", "パチンコ", "パチスロ"};
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, item);
//ボタンの作成
spinnerButton = (Button) findViewById(R.id.button);
spinnerButton.setText("選択肢一覧");
spinnerButton.setOnClickListener(onClickListener);
}
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
//アラートダイアログの作成
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//アラートダイアログのタイトル設定
builder.setTitle("下記から選択してください");
/*
アラートダイアログをラジオボタン風に設定(setSingleChoiceItems)
第1引数: アダプタ, 第2引数: デフォルトでチェックが入る一(0), 第3引数: 項目クリック時のリスナー
*/
builder.setSingleChoiceItems(adapter, selectedIndex, onDialogClickListener);
alertDialog = builder.create();
alertDialog.show();
}
};
private DialogInterface.OnClickListener onDialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//アラートダイアログを閉じて、選択された文字をテキストビューへ表示
alertDialog.dismiss();
textView = (TextView)findViewById(R.id.text_view);
textView.setText(adapter.getItem(which));
}
};
}
以上でアラートダイアログ(ラジオ風プルダウン)の作成となります。
過去記事
過去にJava関連の記事やpython関連の記事を書いているのでぜひ、そちらもご参照いただければ幸いです。
この記事が気に入ったらサポートをしてみませんか?