我们在日常使用App的时候是需要人机交互的,那如何才能让我们的Android系统知道用户想进行什么样的操作呢,这时就需要设置提示框让用户根据自身需求进行选择啦!
Android中对话框是由AlertDialog来完成的,它既可以创建提示框还能创建列表框。
1、新建layout.xml文件
在工程目录下找到layout文件夹(dialog(工程名)\src\main\res\layout),右键New-XML-layout xml file,此处我新建的文件为layout1.xml。在该布局文件中编辑代码如下(文本内容可自行修改):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnSimpleDialog"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="官方通知"/>
<Button
android:id="@+id/btnListDialog"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="你想去哪"/>
</LinearLayout>
2、在MainActivity.java中注册按钮监听器,完成点击操作
package com.example.dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btnSimpleDialog;
private Button btnListDialog;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout1);
initView();
}
private void initView(){
//初始化控件
btnSimpleDialog=findViewById(R.id.btnSimpleDialog);
btnListDialog=findViewById(R.id.btnListDialog);
//注册按钮事件监听器
btnSimpleDialog.setOnClickListener(this);
btnListDialog.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.btnSimpleDialog:
showSimpleAlertDialog();
break;
case R.id.btnListDialog:
showListDialog();
break;
default:
break;
}
}
private void showSimpleAlertDialog(){
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("通知:");
dialog.setMessage("我最爱你");
dialog.setCancelable(false);//设置对话框不能按返回键取消
dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你点击了确认按钮!",Toast.LENGTH_SHORT).show();
}
});
dialog.setNegativeButton("取消",null);
dialog.show();
}
private void showListDialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("选择一个城市");
//指定下拉列表的显示数据
final String[] cities={"北京","南京","重庆","长沙","西藏"};
//设置一个下拉的列表选择项
builder.setItems(cities, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"选择的城市为:"+cities[which],Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
}
3、运行结果
提示框(选择之后底部会提示您选择了xx按钮):
列表框(选择后页面底部有提示语你选择了xx城市):
4、在真实设备上运行
1)Android手机插上数据线与电脑连接;
2)在手机的设置中找到“关于手机-手机的版本号”,连续点击5次以上直到页面提示你已进入开发者模式;
3)回到设置首页找到开发者选项,打开USB调试
4)Android Studio下载Google USB Driver
5)在设备管理器找到所连接的真机设备进行更新驱动选择上面下载的驱动即可
6)在Android Studio的设备框就会出现自己的手机型号
7)点击运行即可
8)若报错显示如下
在AndroidManifest.xml中找到<activity android:name=".MainActivity">,在其后面加上android:exported="true",即改成如下代码
<activity android:name=".MainActivity" android:exported="true">
9)再次点击运行即可在自己的设备上安装App进行运行。