# UniPlugin-Hello-AS **Repository Path**: qiuhc/uni-plugin-hello-as ## Basic Information - **Project Name**: UniPlugin-Hello-AS - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-04-30 - **Last Updated**: 2024-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 原生android端editText控件,用于在nvue页面使用 使用方法 支持的参数有textSize(输入框字号),textColor(输入框文字颜色)hint(描述文案) hintTextColor(描述文案颜色) 组件本身支持设置class,style,字号和颜色只能通过预定的参数设置 回调方法: @beforeTextChanged 内容变化前 @onTextChanged 内容发送变化 @afterTextChanged 内容变化后 返回值 {detail:{text:'111'}} 方法: 通过ref调用组件方法 focus(获得焦点) blur(失去焦点) showKeyboard(显示键盘) hideKeyboard(隐藏键盘) setText(修改值) ```java package io.dcloud.uniplugin; import android.content.Context; import android.graphics.Color; import android.text.Editable; import android.text.TextWatcher; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import androidx.annotation.NonNull; import java.util.HashMap; import java.util.Map; import io.dcloud.feature.uniapp.UniSDKInstance; import io.dcloud.feature.uniapp.annotation.UniJSMethod; import io.dcloud.feature.uniapp.ui.action.AbsComponentData; import io.dcloud.feature.uniapp.ui.component.AbsVContainer; import io.dcloud.feature.uniapp.ui.component.UniComponent; import io.dcloud.feature.uniapp.ui.component.UniComponentProp; public class T11EditText extends UniComponent { public T11EditText(UniSDKInstance instance, AbsVContainer parent, AbsComponentData basicComponentData) { super(instance, parent, basicComponentData); } @Override protected EditText initComponentHostView(Context context) { EditText editText = new EditText(context); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { cellJsEvent("beforeTextChanged", charSequence.toString()); } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { cellJsEvent("onTextChanged", charSequence.toString()); } @Override public void afterTextChanged(Editable editable) { cellJsEvent("afterTextChanged", editable.toString()); } }); return editText; } private void cellJsEvent(String name,String text){ Map params = new HashMap<>(); Map number = new HashMap<>(); number.put("text", text); //目前uni限制 参数需要放入到"detail"中 否则会被清理 params.put("detail", number); fireEvent(name, params); } @UniComponentProp(name = "textSize") public void setSize(String size){ if(size != null && !size.equals("")){ getHostView().setTextSize(Integer.valueOf(size)); } } @UniComponentProp(name = "textColor") public void setTextColor(String color){ if(color != null && !color.equals("")){ getHostView().setTextColor(Color.parseColor(color)); } } @UniComponentProp(name = "hint") public void setHint(String hint){ getHostView().setHint(hint); } @UniComponentProp(name = "hintTextColor") public void setHintTextColor(String color){ getHostView().setHintTextColor(Color.parseColor(color)); } @UniJSMethod public void setText(String text){ getHostView().setText(text); getHostView().setSelection(getHostView().getText().length()); } @UniJSMethod public void focus(){ getHostView().requestFocus(); getHostView().setSelection(getHostView().getText().length()); } @UniJSMethod public void blur(){ getHostView().clearFocus(); hideKeyboard(); } @UniJSMethod public void showKeyboard(){ InputMethodManager imm = (InputMethodManager) mUniSDKInstance.getContext() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(getHostView(), 0); } @UniJSMethod public void hideKeyboard(){ InputMethodManager imm = (InputMethodManager) mUniSDKInstance.getContext() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getHostView().getWindowToken(), 0); } } ```