package com.summer.netcloud.window; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.text.InputFilter; import android.util.TypedValue; import android.view.Gravity; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.summer.netcloud.R; import com.summer.netcloud.utils.ResTools; import com.summer.netcloud.utils.ScreenUtils; /** * Created by summer on 05/09/2018. */ public class HostInputDialog { private AlertDialog mHostInputDialog; private Context mContext; private IDialogCallback mCallback; private String mOriginContent; public HostInputDialog(Context context, IDialogCallback callback){ mContext = context; mCallback = callback; } public void show(){ show(0); } public void setOriginText(String origin){ mOriginContent = origin; } public void show(int inputType){ if(mHostInputDialog != null){ return; } AlertDialog.Builder builder = new AlertDialog.Builder(mContext); LinearLayout cnt = new LinearLayout(mContext); cnt.setBackgroundResource(R.drawable.list_item_bg); cnt.setOrientation(LinearLayout.VERTICAL); cnt.setGravity(Gravity.CENTER_HORIZONTAL); int vp = ScreenUtils.dp2px(12); int hp = (int) ResTools.getDimen(R.dimen.hor_padding); cnt.setPadding(hp, vp, hp, vp); final EditText editText = new EditText(mContext); editText.setBackgroundColor(ResTools.getColor(R.color.background)); editText.setMaxLines(1); editText.setSingleLine(); if(mOriginContent != null){ editText.setText(mOriginContent); } editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(60)}); InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); if(inputType > 0){ editText.setInputType(inputType); } cnt.addView(editText); TextView ok = new TextView(mContext); ok.setText(R.string.add); ok.setGravity(Gravity.CENTER); ok.setBackgroundResource(R.drawable.button_blue); ok.setTextColor(ResTools.getColor(R.color.blue)); ok.setTextSize(TypedValue.COMPLEX_UNIT_PX, (int)ResTools.getDimen(R.dimen.textsize1)); ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String host = editText.getText().toString(); mCallback.onHostInput(host); } }); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ScreenUtils.dp2px(80), ScreenUtils.dp2px(32)); lp.gravity = Gravity.CENTER_HORIZONTAL; lp.topMargin = ScreenUtils.dp2px(16); cnt.addView(ok, lp); builder.setView(cnt); mHostInputDialog = builder.create(); mHostInputDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { mHostInputDialog = null; mCallback.onDismiss(); } }); mHostInputDialog.show(); editText.requestFocus(); } public void dismiss(){ if(mHostInputDialog != null && mHostInputDialog.isShowing()){ mHostInputDialog.dismiss(); } } public interface IDialogCallback{ void onHostInput(String value); void onDismiss(); } }