Android studio 新建日程弹出对话框。对话框单选四个选项,左边底部取消,右边确定。选择一个选项后,该选项会浮动显示在底部
时间: 2023-05-28 17:06:10 浏览: 118
的文本框中。
实现思路:
1. 在布局文件中定义一个LinearLayout,设置orientation为vertical,作为整个对话框的容器。
2. 在LinearLayout中添加一个TextView,用于显示日程选项。
3. 在LinearLayout中添加四个RadioButton,分别表示四个日程选项。
4. 在LinearLayout中添加一个RadioGroup,将四个RadioButton放入其中,设置为单选。
5. 在LinearLayout中添加一个HorizontalLinearLayout,用于显示取消和确定按钮。
6. 在HorizontalLinearLayout中添加一个Button,用于取消操作,设置为左对齐。
7. 在HorizontalLinearLayout中添加一个Button,用于确定操作,设置为右对齐。
8. 在Activity中,使用AlertDialog.Builder创建一个对话框,将布局文件设置为对话框的视图。
9. 在AlertDialog.Builder中设置对话框的标题、图标等属性。
10. 在AlertDialog.Builder中设置对话框的取消按钮和确定按钮的点击事件,分别对应取消操作和确定操作。
11. 在确定按钮的点击事件中,获取选中的RadioButton的文本内容,并将其显示在底部的文本框中。
示例代码:
布局文件:
```
<LinearLayout
android:id="@+id/dialog_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请选择日程:" />
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radio1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="日程1" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="日程2" />
<RadioButton
android:id="@+id/radio3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="日程3" />
<RadioButton
android:id="@+id/radio4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="日程4" />
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/black" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingTop="16dp"
android:paddingBottom="16dp">
<Button
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"
android:textColor="@color/black" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black" />
<Button
android:id="@+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
```
Activity代码:
```
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private Button mBtnCancel;
private Button mBtnOk;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.textview);
mBtnCancel = findViewById(R.id.btn_cancel);
mBtnOk = findViewById(R.id.btn_ok);
mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSelectDialog();
}
});
}
private void showSelectDialog() {
View dialogView = LayoutInflater.from(this).inflate(R.layout.dialog_layout, null);
final RadioGroup radioGroup = dialogView.findViewById(R.id.radiogroup);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialogView)
.setTitle("选择日程")
.setIcon(R.mipmap.ic_launcher)
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int checkedId = radioGroup.getCheckedRadioButtonId();
RadioButton radioButton = radioGroup.findViewById(checkedId);
String text = radioButton.getText().toString();
mTextView.setText(text);
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}
```
阅读全文