讲解知识点:
- 更改底边颜色
- 限制输入的字数
- 禁止回车换行
- 动态监听输入的值
- 输入框变方框
- 自定义EditText 边框背景
- hint 居中
- 去除边框
- 判断输入的值是否为空格、空
- 常用属性与所有属性
- 判断字符串是否含有中文,数字,英文
第一:
效果图:
在 values / styles.xml 文件中,新增自定义 style 语句:
<style name="MyEditText" parent="Theme.AppCompat.Light"> <item name="colorControlNormal">#0950f5</item> <item name="colorControlActivated">#b6b6b6</item> </style>
activity_main.xml:
<EditText android:id="@+id/edt_special" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="80dp" android:layout_centerInParent="true" android:hint="请输入标识码" android:gravity="center" android:theme="@style/MyEditText"/>
第二:
android:maxLength 用来限制EditText中可以输入的字符个数
第三:
在Java代码中: view.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER); } }); 在XML中: 设置EditText的android:singleLine=”true”
第四:
效果图:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:id="@+id/edt_shuru" android:layout_marginTop="50dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请 输 入"/> <TextView android:id="@+id/tv_show" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="90dp" android:textSize="40dp" android:layout_gravity="center" android:text="动态监听值"/> </LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView textView = findViewById(R.id.tv_show); EditText editText = findViewById(R.id.edt_shuru); // 动态接收输入值 editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { //输入之前 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 输入时 textView.setText(s); //s表示输入的值 } @Override public void afterTextChanged(Editable s) { // 输入之后 } }); } }
第五:
直接在xml加上一句话即可:
android:background="@android:drawable/alert_light_frame"
第六种:
效果图:
在res/drawable下创建3个xml文件,分别为:
bg_one.xml: <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /> <corners android:radius="3dip"/> <stroke android:width="1dip" android:color="#6ba2ff" /> </shape> bg_two.xml: <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /> <corners android:radius="3dip"/> <stroke android:width="1dip" android:color="#728ea3" /> </shape> bg_editText: <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:drawable="@drawable/bg_one" /> <item android:state_focused="true" android:drawable="@drawable/bg_two" /> </selector> 最后直接添加: android:background="@drawable/bg_edittext"
第七种:
android:gravity="center"
第八种:
https://wenku.baidu.com/view/9edef59ebb68a98271fefab2.html
第九种:
//判断是否为空 if(specialNum == null || "".equals(specialNum)){ Toast.makeText(RegisterActivity.this,"输入不能为空",Toast.LENGTH_LONG).show(); return; }else if (specialNum.contains(" ")){ //判断是否含有空格 Toast.makeText(RegisterActivity.this,"输入不能有空格噢!",Toast.LENGTH_LONG).show(); return; } /** * 判断是否含有中文 */ Pattern p = Pattern.compile("[\u4e00-\u9fa5]"); Matcher m = p.matcher(specialNum); if (m.find()){ //有中文则提示用户 Toast.makeText(RegisterActivity.this,"不能含有中文噢",Toast.LENGTH_LONG).show(); return; }
第十种:
参考我之前写的链接
第十一种:
String txt = edInput.getText().toString(); Pattern p = Pattern.compile("[0-9]*"); Matcher m = p.matcher(txt); if(m.find() ){ Toast.makeText(Main.this,"输入是数字!", Toast.LENGTH_SHORT).show(); } p = Pattern.compile("[a-zA-Z]"); m = p.matcher(txt); if(m.find()){ Toast.makeText(Main.this,"输入是字母!", Toast.LENGTH_SHORT).show(); }