1.概述
这篇文章中主要包括AlertDialog、popUpWindow的使用。
2.AlertDialog的使用
(1)首先来看一下基本的API使用:
效果图:
主要是先声明、再可以设置title、message、点击事件
AlertDialog.Builder builder= new AlertDialog.Builder(DialogActivity.this);//声明一个builder builder.setIcon(R.mipmap.ic_launcher) //设置图像 .setTitle("我是对话框") //设置title .setMessage("今天天气怎么样") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Log.d("tag1","点击了确定"); } }) //点击事件 .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Log.d("tag2","点击了取消"); } }) //点击事件 .setNeutralButton("中间", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Log.d("tag3","点击了中间"); } }) .create() //生成builder .show(); //显示对话框
(2)如果alertDialog里面需要有输入,可以利用editText和alertdialog中的setView进行实现
可以进行输入并且获取到输入的内容
效果图:
代码:
建立alertDialog代码:
View dialogview=getLayoutInflater().inflate(R.layout.dialog_resource_info,null); final EditText et_newName=dialogview.findViewById(R.id.etNewResourceName); final EditText et_desc=dialogview.findViewById(R.id.etNewResourceDesc); new AlertDialog.Builder(MyResourceActivity.this) .setTitle("资源详情") .setView(dialogview) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String newName=et_newName.getText().toString(); String desc=et_desc.getText().toString(); } }) .setNegativeButton("取消",null) .show();
菜单:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/resource_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入更改的资源名:" android:layout_marginLeft="10dp" android:textSize="15dp" /> <EditText android:id="@+id/etNewResourceName" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="40dp"/> <TextView android:id="@+id/resource_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注" android:textSize="15dp" android:layout_marginLeft="20dp" android:layout_marginTop="100dp"/> <EditText android:id="@+id/etNewResourceDesc" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="140dp"/> </RelativeLayout>
3.popUpWindow的使用
popUpWindow主要是可以实现弹出式菜单,比如点击就弹出菜单就可以用popUpWindow来实现
实现效果图:点击“+”就弹出菜单
实现流程:
Step1:先新建一个菜单:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/toolbar_camera" android:icon="@mipmap/ic_launcher" android:orderInCategory="1" android:title="拍照上传" app:showAsAction="never" /> <item android:id="@+id/toolbar_copy" android:orderInCategory="2" android:title="图片上传" app:showAsAction="never" /> <item android:id="@+id/toolbar_move" android:orderInCategory="3" android:title="文件上传" app:showAsAction="never" /> <item android:id="@+id/toolbar_delete" android:orderInCategory="4" android:title="新建文件夹" /> </menu>
Step2:在activity中新建popUpWindow:
PopupMenu popupMenu=new PopupMenu(MyResourceActivity.this,view); popupMenu.getMenuInflater().inflate(R.menu.menu_resource,popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch(item.getItemId()){ case R.id.toolbar_camera: Toast.makeText(MyResourceActivity.this,"拍照上传",Toast.LENGTH_SHORT).show(); break; case R.id.toolbar_copy: Toast.makeText(MyResourceActivity.this,"图片上传",Toast.LENGTH_SHORT).show(); break; case R.id.toolbar_move: Toast.makeText(MyResourceActivity.this,"文件上传",Toast.LENGTH_SHORT).show(); break; case R.id.toolbar_delete: Toast.makeText(MyResourceActivity.this,"新建文件夹",Toast.LENGTH_SHORT).show(); break; } return false; } }); popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { } }); popupMenu.show();
Step3:在“+”控件的点击时间中调用该方法就可