新增排程页面重做
This commit is contained in:
@@ -11,6 +11,8 @@ import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputFilter;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
@@ -20,6 +22,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
@@ -30,6 +33,7 @@ import androidx.core.app.ActivityCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewbinding.ViewBinding;
|
||||
|
||||
import com.ckkj.water.utils.show.ToastUtil;
|
||||
import com.esafirm.imagepicker.features.ImagePicker;
|
||||
import com.ckkj.water.AppConfig;
|
||||
import com.ckkj.water.ConstantUtil;
|
||||
@@ -70,6 +74,12 @@ public abstract class BaseFragment<T extends ViewBinding,P extends IPresenter> e
|
||||
protected static final int REQUEST_EVENT_CODE_10002 = 10002;
|
||||
protected static final int REQUEST_EVENT_CODE_10003 = 10003;
|
||||
|
||||
public static final int INPUT_TYPE_NORMAL = 0; // 默认
|
||||
public static final int INPUT_TYPE_NUMBER = 1; // 数字
|
||||
public static final int INPUT_TYPE_LETTER = 2; // 英文字母
|
||||
public static final int INPUT_TYPE_CHINESE = 3; // 中文
|
||||
public static final int INPUT_TYPE_NUMBER_LETTER = 4;//数字+字母
|
||||
|
||||
private static final AtomicBoolean isDialogShown = new AtomicBoolean(false); // 使用 AtomicBoolean 保证线程安全
|
||||
|
||||
|
||||
@@ -860,6 +870,193 @@ public abstract class BaseFragment<T extends ViewBinding,P extends IPresenter> e
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* +
|
||||
*
|
||||
* @param title 标题
|
||||
* @param hint 提示内容2
|
||||
* @param content 内容
|
||||
* @param touchOutsideCancel 弹窗类型
|
||||
* @param cancelText 取消 文案
|
||||
* @param confirmText 确定 文案
|
||||
* @param click
|
||||
*/
|
||||
public void showEditDialog(String title,
|
||||
String hint,
|
||||
String content,
|
||||
boolean touchOutsideCancel,
|
||||
String cancelText,
|
||||
String confirmText,
|
||||
int inputType,
|
||||
final BaseActivity.OnDialogClick click) {
|
||||
|
||||
View view = getLayoutInflater().inflate(
|
||||
R.layout.public_dialog_input_text,
|
||||
null
|
||||
);
|
||||
|
||||
EditText editText = view.findViewById(R.id.et_input);
|
||||
|
||||
//设置输入类型
|
||||
setEditInputType(editText,inputType);
|
||||
|
||||
if(TextUtils.isEmpty(content)){
|
||||
editText.setHint(hint);
|
||||
}else{
|
||||
editText.setText(content);
|
||||
editText.setSelection(content.length());
|
||||
}
|
||||
|
||||
setTextView(R.id.tv_title,title,view);
|
||||
|
||||
if (!TextUtils.isEmpty(confirmText)
|
||||
&& !TextUtils.isEmpty(cancelText)) {
|
||||
|
||||
((TextView)view.findViewById(R.id.btnLeft))
|
||||
.setText(cancelText);
|
||||
|
||||
((TextView)view.findViewById(R.id.btnRight))
|
||||
.setText(confirmText);
|
||||
}
|
||||
|
||||
view.findViewById(R.id.btnLeft)
|
||||
.setOnClickListener(v -> {
|
||||
|
||||
if(dialog!=null&&dialog.isShowing())
|
||||
dialog.dismiss();
|
||||
|
||||
if(click!=null)
|
||||
click.onCancelClick();
|
||||
|
||||
});
|
||||
|
||||
view.findViewById(R.id.btnRight)
|
||||
.setOnClickListener(v -> {
|
||||
|
||||
String value=editText.getText()
|
||||
.toString()
|
||||
.trim();
|
||||
|
||||
if(TextUtils.isEmpty(value)){
|
||||
ToastUtil.showShort(mContext,hint);
|
||||
return;
|
||||
}
|
||||
|
||||
if(dialog!=null&&dialog.isShowing())
|
||||
dialog.dismiss();
|
||||
|
||||
if(click!=null)
|
||||
click.onConfirmClisk(value);
|
||||
|
||||
});
|
||||
|
||||
AlertDialog.Builder builder;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||
builder = new AlertDialog.Builder(
|
||||
mContext,
|
||||
AlertDialog.THEME_HOLO_LIGHT
|
||||
);
|
||||
} else {
|
||||
builder = new AlertDialog.Builder(mContext);
|
||||
}
|
||||
|
||||
builder.setInverseBackgroundForced(true);
|
||||
builder.setView(view);
|
||||
|
||||
dialog = builder.show();
|
||||
|
||||
dialog.setCanceledOnTouchOutside(
|
||||
touchOutsideCancel
|
||||
);
|
||||
|
||||
try {
|
||||
((View)dialog.getWindow()
|
||||
.getDecorView()
|
||||
.findViewById(R.id.contentDialog)
|
||||
.getParent()
|
||||
.getParent())
|
||||
.setBackgroundColor(
|
||||
getResources().getColor(
|
||||
R.color.transparent
|
||||
)
|
||||
);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void setEditInputType(EditText editText,int type){
|
||||
|
||||
switch (type){
|
||||
|
||||
case INPUT_TYPE_NUMBER:
|
||||
//纯数字键盘
|
||||
editText.setInputType(
|
||||
InputType.TYPE_CLASS_NUMBER
|
||||
);
|
||||
break;
|
||||
|
||||
case INPUT_TYPE_LETTER:
|
||||
|
||||
//只能输入字母
|
||||
editText.setFilters(
|
||||
new InputFilter[]{
|
||||
(source,start,end,dest,dstart,dend)->{
|
||||
|
||||
if(source.toString()
|
||||
.matches("[a-zA-Z]+")){
|
||||
return source;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
case INPUT_TYPE_CHINESE:
|
||||
|
||||
//只能输入中文
|
||||
editText.setFilters(
|
||||
new InputFilter[]{
|
||||
(source,start,end,dest,dstart,dend)->{
|
||||
|
||||
if(source.toString()
|
||||
.matches("[\\u4e00-\\u9fa5]+")){
|
||||
return source;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
case INPUT_TYPE_NUMBER_LETTER:
|
||||
|
||||
//数字+字母
|
||||
editText.setFilters(
|
||||
new InputFilter[]{
|
||||
(source,start,end,dest,dstart,dend)->{
|
||||
|
||||
if(source.toString()
|
||||
.matches("[a-zA-Z0-9]+")){
|
||||
return source;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
editText.setInputType(
|
||||
InputType.TYPE_CLASS_TEXT
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 权限请求结果回调
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user