实现一个DialogFragment,其中绑定的是自定义的Dialog布局,中间包含两个TextView水平居中,四个RadioButton,每个要有点击事件,一个取消按钮以及一个确定按钮,使用的是View的onClick
时间: 2024-03-11 22:48:45 浏览: 72
好的,我理解你的问题了。这里是一个实现DialogFragment的示例代码,你可以根据自己的需要进行适当修改:
```java
public class MyDialogFragment extends DialogFragment implements View.OnClickListener {
private TextView textView1, textView2;
private RadioButton radioButton1, radioButton2, radioButton3, radioButton4;
private Button cancelButton, okButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_dialog_layout, container, false);
// 初始化控件
textView1 = view.findViewById(R.id.text_view1);
textView2 = view.findViewById(R.id.text_view2);
radioButton1 = view.findViewById(R.id.radio_button1);
radioButton2 = view.findViewById(R.id.radio_button2);
radioButton3 = view.findViewById(R.id.radio_button3);
radioButton4 = view.findViewById(R.id.radio_button4);
cancelButton = view.findViewById(R.id.cancel_button);
okButton = view.findViewById(R.id.ok_button);
// 绑定点击事件
textView1.setOnClickListener(this);
textView2.setOnClickListener(this);
radioButton1.setOnClickListener(this);
radioButton2.setOnClickListener(this);
radioButton3.setOnClickListener(this);
radioButton4.setOnClickListener(this);
cancelButton.setOnClickListener(this);
okButton.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.text_view1:
// 处理点击事件
break;
case R.id.text_view2:
// 处理点击事件
break;
case R.id.radio_button1:
// 处理点击事件
break;
case R.id.radio_button2:
// 处理点击事件
break;
case R.id.radio_button3:
// 处理点击事件
break;
case R.id.radio_button4:
// 处理点击事件
break;
case R.id.cancel_button:
dismiss();
break;
case R.id.ok_button:
// 处理点击事件
dismiss();
break;
}
}
}
```
在这个示例中,我们创建了一个名为 `MyDialogFragment` 的 `DialogFragment`,并在 `onCreateView()` 方法中绑定了自定义的布局文件 `my_dialog_layout.xml` 中的控件,并为每个控件绑定了点击事件。同时,我们在 `onClick()` 方法中处理了每个控件的点击事件,并在确定按钮和取消按钮的点击事件中调用了 `dismiss()` 方法来关闭对话框。
阅读全文