讲解知识点:
- 更改底边颜色
- 限制输入的字数
- 禁止回车换行
- 动态监听输入的值
- 输入框变方框
- 自定义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;
}
第十种:
参考我之前写的链接:https://blog.csdn.net/qq_27494201/article/details/95621364
第十一种:
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();
}