android安卓:常用对话框设计AlertDialog
android安卓之常用对话框设计AlertDialog
学习目的:掌握常用对话框中提示,单选,复选,自定义对话框的设计和使用。
布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android" >
<TextView
android:id="@ id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你的选择是:" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@ id/tip_btn"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="提示对话框" />
<Button
android:id="@ id/tip2_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="自定义提示对话框" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@ id/radio_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="单选对话框" />
<Button
android:id="@ id/mul_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="多选对话框" />
</LinearLayout>
</LinearLayout>
MainActivity文件
提示
当点击“提示对话框”时,显示内容如下,当点击确定时,文本显示内容为“你的选择是确定”,反之文本内容显示为“你的选择是取消”。
tip_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("注意");
builder.setMessage("你确定要退出吗");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText("你的选择是确定");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText("你的选择是取消");
}
});
builder.create();
builder.show();
}
});
自定义
当点击“自定义提示对话框”时,显示登录界面,如下图左边,点击确定后效果显示如右边。
登录界面的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android" >
<EditText
android:id="@ id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户名" />
<EditText
android:id="@ id/pass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码" />
</LinearLayout>
点击事件方法
需要我们了解的是
LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.login_dialog,null);这两句是把另一个登录界面引入到事件中。后通过
builder.setView(layout);来显示登录的布局文件。
tip2_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.login_dialog,null);
final EditText etName,etPass;
etName=layout.findViewById(R.id.name);
etPass=layout.findViewById(R.id.pass);
builder.setView(layout);
builder.setTitle("登录");
builder.setIcon(R.mipmap.ic_launcher);
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String name=etName.getText().toString().trim();
String pass=etPass.getText().toString().trim();
tv.setText("你的用户名是" name ",你的密码是" pass);
}
});
builder.setNegativeButton("取消",null);
builder.create();
builder.show();
}
});
单选
当点击“单选对话框”时,显示效果如下图左边,选择某个选项后,显示效果如右边。
radio_btn.setOnClickListener(new View.OnClickListener() {
String[] items = new String[] {"信管专业","计科专业","软工专业"};
int choose=0;
@Override
public void onClick(View view) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("选择专业");
builder.setCancelable(false);
builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
choose=i;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText("你的专业是" items[choose]);
}
});
builder.setNegativeButton("取消",null);
builder.create();
builder.show();
}
});
多选
当点击“多选对话框”时,显示效果如下图左边,选择某个选项后,显示效果如右边。
mul_btn.setOnClickListener(new View.OnClickListener() {
String[] place = new String[] {"北京","上海","纽约","巴黎"};
boolean[] check=new boolean[] {false,true,true,false};
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("请选择你去过的城市");
builder.setMultiChoiceItems(place, check, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
check[i]=b;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
StringBuilder stringBuilder=new StringBuilder("你去过的城市有:");
for (int j=0; j<place.length ;j ){
if (check[j]==true){
stringBuilder.append(place[j]).append("\t");
}
}
tv.setText(stringBuilder.toString());
}
});
builder.setNegativeButton("取消",null);
builder.create();
builder.show();
}
});
最后附上全的main文件
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button tip_btn=findViewById(R.id.tip_btn);
Button tip2_btn=findViewById(R.id.tip2_btn);
Button radio_btn=findViewById(R.id.radio_btn);
Button mul_btn=findViewById(R.id.mul_btn);
final TextView tv = findViewById(R.id.tv);
tip_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("注意");
builder.setMessage("你确定要退出吗");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText("你的选择是确定");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText("你的选择是取消");
}
});
builder.create();
builder.show();
}
});
tip2_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.login_dialog,null);
final EditText etName,etPass;
etName=layout.findViewById(R.id.name);
etPass=layout.findViewById(R.id.pass);
builder.setView(layout);
builder.setTitle("登录");
builder.setIcon(R.mipmap.ic_launcher);
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String name=etName.getText().toString().trim();
String pass=etPass.getText().toString().trim();
tv.setText("你的用户名是" name ",你的密码是" pass);
}
});
builder.setNegativeButton("取消",null);
builder.create();
builder.show();
}
});
radio_btn.setOnClickListener(new View.OnClickListener() {
String[] items = new String[] {"信管专业","计科专业","软工专业"};
int choose=0;
@Override
public void onClick(View view) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("选择专业");
builder.setCancelable(false);
builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
choose=i;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText("你的专业是" items[choose]);
}
});
builder.setNegativeButton("取消",null);
builder.create();
builder.show();
}
});
mul_btn.setOnClickListener(new View.OnClickListener() {
String[] place = new String[] {"北京","上海","纽约","巴黎"};
boolean[] check=new boolean[] {false,true,true,false};
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("请选择你去过的城市");
builder.setMultiChoiceItems(place, check, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
check[i]=b;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
StringBuilder stringBuilder=new StringBuilder("你去过的城市有:");
for (int j=0; j<place.length ;j ){
if (check[j]==true){
stringBuilder.append(place[j]).append("\t");
}
}
tv.setText(stringBuilder.toString());
}
});
builder.setNegativeButton("取消",null);
builder.create();
builder.show();
}
});
}
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbjffe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01