SearchDialog.java
public class SearchDialog extends AppCompatDialog {
private EditText uno;
private EditText pwd;
private Button dialog_btn;
private LinearLayout search_layout;
private final Display mDisplay;
private OnSelectListener mOnSelectListener;
private Context context;
public SearchDialog(Context context, OnSelectListener onSelectListener) {
super(context, R.style.ActionSheetDialogStyle);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
this.mOnSelectListener = onSelectListener;
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mDisplay = windowManager.getDefaultDisplay();
this.context=context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_search);
uno=findViewById(R.id.uno);
pwd=findViewById(R.id.pwd);
search_layout=findViewById(R.id.search_layout);
dialog_btn=findViewById(R.id.dialog_btn);
Window window = this.getWindow();
search_layout.setLayoutParams(new FrameLayout.LayoutParams((int) (mDisplay.getWidth() * 0.8), LinearLayout.LayoutParams.WRAP_CONTENT));
window.setGravity(Gravity.CENTER);//dialog在屏幕显示的位置
dialog_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((uno.getText().toString().equals("")&&pwd.getText().toString().equals(""))){
Toast.makeText(context,"请输入账号密码",Toast.LENGTH_SHORT).show();
}else {
if (mOnSelectListener != null) {
mOnSelectListener.OnSureClick(uno.getText().toString(),pwd.getText().toString());
dismiss();
}
}
}
});
}
public interface OnSelectListener {
void OnSureClick(String uno, String pwd);
}
}
dialog_search.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/search_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:padding="10dp"
android:textSize="15sp"
android:text="账号:" />
<EditText
android:id="@+id/uno"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#000"
android:inputType="number"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:padding="10dp"
android:textSize="15sp"
android:text="密码:" />
<EditText
android:id="@+id/pwd"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#000"
android:inputType="number"
/>
</LinearLayout>
<Button
android:id="@+id/dialog_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:padding="8dp"
android:text="登录"/>
</LinearLayout>
R.style.ActionSheetDialogStyle
<style name="ActionSheetDialogStyle" parent="@android:style/Theme.Holo.Dialog.NoActionBar">
<!-- 背景透明 -->
<item name="android:windowBackground">@android:color/white</item>
<!-- 浮于Activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 边框 -->
<item name="android:windowFrame">@null</item>
<!-- Dialog以外的区域模糊效果 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 无标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">true</item>
<!-- Dialog进入及退出动画
<item name="android:windowAnimationStyle">@style/ActionSheetDialogAnimation</item>-->
</style>
调用
private void showSearchDialog(){
SearchDialog dialog= new SearchDialog(MainActivity.this, new SearchDialog.OnSelectListener() {
@Override
public void OnSureClick(String uno, String pwd) {
Toast.makeText(MainActivity.this,"账号:"+uno+"密码"+pwd,Toast.LENGTH_LONG).show();
}
});
Window window = dialog.getWindow();
//去除阴影 window.clearFlags( WindowManager.LayoutParams.FLAG_DIM_BEHIND);
WindowManager.LayoutParams wl = window.getAttributes();
//出场动画 window.setWindowAnimations(R.style.Dialog_UP_DOWN_Style);
wl.x = 0;
wl.y = 170;
//设置显示位置,以window.setGravity(Gravity.CENTER)为起点,进行偏移
dialog.onWindowAttributesChanged(wl);
//设置点击外围消散
dialog.setCanceledOnTouchOutside(true);
dialog.show();
}