public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 弹出选择框
*
* 1、设置点击事件
* 2、设置弹出框
* 3、弹出事件
*/
View frameLayout01 = findViewById(R.id.frameLayout01);
frameLayout01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPlaybackOptions();
}
});
}
private void showPlaybackOptions(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("测试弹出框")
// 设置弹出框中的选项,这里举个简单的例子 两个字符串
.setItems(new String[]{"选项一","选项二"}, (dialog,which) -> {
switch (which) {
case 0:
System.out.println("选项一");
break;
case 1 :
System.out.println("选项二");
break;
}
})
.setNegativeButton("取消",null)
.show()
// 相当于一个钩子。能在对话框弹出前执行函数中的方法
.create();
}
}
单独举例子 create()
java
private void showPlaybackOptions() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("测试弹出框")
.setItems(new String[]{"选项一", "选项二"}, (dialog, which) -> {
switch (which) {
case 0:
System.out.println("选项一");
break;
case 1:
System.out.println("选项二");
break;
}
})
.setNegativeButton("取消", null);
// 创建 AlertDialog 对象
AlertDialog dialog = builder.create();
// 在这里可以对 dialog 进行更多自定义操作
dialog.setOnShowListener(dialogInterface -> {
// 执行一些操作,例如在对话框显示之前更改按钮的颜色
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(Color.RED);
});
// 显示对话框
dialog.show();
}
总结编辑摘要
-
设置点击事件:
- 为
FrameLayout
设置点击事件,当点击时调用showPlaybackOptions
方法。
- 为
-
设置弹出框:
- 使用
AlertDialog.Builder
创建并配置弹出框,包括设置标题和选项。 - 使用
setItems
方法设置弹出框中的选项,并处理选项点击事件。 - 使用
setNegativeButton
方法设置取消按钮。
- 使用
-
弹出事件:
-
调用
create()
方法创建AlertDialog
对象,但不显示对话框。 -
在
create()
方法之后但在show()
方法之前,对AlertDialog
对象进行自定义操作,例如设置setOnShowListener
来更改按钮颜色。 -
调用
show()
方法显示对话框。
-
关键点
create()
方法:用于创建AlertDialog
对象,但不显示。可以在show()
方法之前进行自定义操作。setOnShowListener
方法:设置一个监听器,在对话框显示之前执行一些操作,例如更改按钮颜色。