Las representaciones son las siguientes:
One.InputDialog.java
package cn.xuanma.frame.base;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.support.v7.widget.AppCompatEditText;
import android.support.v7.widget.AppCompatTextView;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import cn.xuanma.frame.R;
@SuppressWarnings("ALL")
public class InputDialog {
private Dialog dialog;
private Context context;
private AppCompatTextView titleTextView;
private AppCompatTextView cancelTextView;
private AppCompatTextView confirmTextView;
private AppCompatEditText contentEditText;
public InputDialog(Context context, String title, String content) {
this.context = context;
init(title, content);
}
public InputDialog(Context context, int title, String content) {
this.context = context;
init(context.getString(title), content);
}
public InputDialog(Context context, String title, int content) {
this.context = context;
init(title, context.getString(content));
}
public InputDialog(Context context, int title, int content) {
this.context = context;
init(context.getString(title), context.getString(content));
}
public void setCancelListerner(View.OnClickListener listerner) {
cancelTextView.setOnClickListener(listerner);
}
public void setConfirmListerner(View.OnClickListener listerner) {
confirmTextView.setOnClickListener(listerner);
}
public String getTitle() {
return titleTextView.getText().toString();
}
public void setTitle(String title) {
titleTextView.setText(title);
}
public String getContent() {
return contentEditText.getText().toString();
}
public void setContent(String content) {
contentEditText.setText(content);
}
public void dismiss() {
dialog.dismiss();
}
private void init(String title, String content) {
this.dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog_input);
dialog.getWindow().getDecorView().setPadding(0, 0, 0, 0);
Window window = dialog.getWindow();
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
WindowManager.LayoutParams layoutParams = window.getAttributes();
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
window.setGravity(Gravity.CENTER | Gravity.BOTTOM);
layoutParams.width = (int) (displayMetrics.widthPixels * 1);
window.setAttributes(layoutParams);
titleTextView = dialog.findViewById(R.id.titleTextView);
contentEditText = dialog.findViewById(R.id.contentEditText);
cancelTextView = dialog.findViewById(R.id.cancelTextView);
confirmTextView = dialog.findViewById(R.id.confirmTextView);
titleTextView.setText(title);
contentEditText.setText(content);
contentEditText.setSelection(content.length());
contentEditText.post(new Runnable() {
@Override
public void run() {
InputMethodManager inputMethodManager = (InputMethodManager) ((Activity) context).getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
});
}
public void show() {
dialog.show();
}
}
二 .dialog.input.xml
<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<android.support.v7.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dip"
android:background="@drawable/border_dialog_input"
android:orientation="vertical">
<android.support.v7.widget.AppCompatTextView
android:id="@+id/titleTextView"
android:layout_width="match_parent"
android:layout_height="80dip"
android:gravity="center"
android:textColor="#333333"
android:textSize="16sp" />
<android.support.v7.widget.AppCompatEditText
android:id="@+id/contentEditText"
android:layout_width="match_parent"
android:layout_height="40dip"
android:layout_marginBottom="20dip"
android:layout_marginEnd="28dip"
android:layout_marginStart="28dip"
android:background="@drawable/border_dialog_edit"
android:paddingEnd="12dip"
android:paddingStart="12dip"
android:textColor="#666666"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#DEDEDE" />
<android.support.v7.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="48dip"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/cancelTextView"
android:background="@drawable/border_dialog_text_left"
android:gravity="center"
android:text="@string/cancel"
android:textColor="#333333"
android:textSize="14sp" />
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="#DEDEDE" />
<android.support.v7.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/confirmTextView"
android:layout_weight="1"
android:background="@drawable/border_dialog_text_right"
android:gravity="center"
android:text="@string/confirm"
android:textColor="#A6937C"
android:textSize="14sp" />
</android.support.v7.widget.LinearLayoutCompat>
</android.support.v7.widget.LinearLayoutCompat>
Three.border_dialog_edit.xml
<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dip" />
<stroke
android:width="1px"
android:color="#DEDEDE" />
</shape>
四 .border_dialog_input.xml
<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners android:radius="4dip" />
</shape>
五 .border_dialog_text_left.xml
<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#F9F9F9" />
<corners android:bottomLeftRadius="4dip" />
</shape>
六 .border_dialog_text_right.xml
<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#F9F9F9" />
<corners android:bottomRightRadius="4dip" />
</shape>