<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.example.edittext.MainActivity" >
<!-- EditText的常用属性
android:hint 当编辑框内容为空时的提示
android:inputType 限制输入的内容
android:digits 限制输入的字符
requestFocus 自动获得焦点-->
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textCapCharacters"
android:hint="输入大写字母"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textCapWords"
android:hint="单词首字母为大写"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textCapSentences"
android:hint="句子首字母为大写"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:digits="0123456789abcdef"
android:hint="限定数字16进制数"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textCapSentences"
android:hint="自动获得焦点">
<requestFocus/>
</EditText> </LinearLayout>
EditText设置光标颜显示:
需要在布局文件中指定androd:textCursorDrawable,如果需要设置成与字体一样的颜色,改属性设置为“@null”即可,如果需要自定义颜色,需要自定义一个drawable文件,例如:在drawable下窗井my_cursor.xml,内容如下
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#000080" />
<size android:width="1dp"/> </shape>
然后,设置android:textCursorDrawable="@drawable/my_cursor",光标颜色就可以改变为指定颜色。
EditText文本设置光标位置:
EditText文本设置为右对齐,并设置有提示文字时,光标默认是在左侧显示的,这里解决的方法为创建一个TextView代替提示按钮,设置在Edittext下方,并在代码中通过监听Edittext的状态,来控制Textview的显示与隐藏,进而达到提示文字在右侧,光标也在右侧的效果。
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.eichinn.practice.MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="right|center_vertical" />
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="6dp"
android:gravity="right|center_vertical"
android:background="@null"
android:text="Hello World!"/>
</FrameLayout>
</LinearLayout>
java代码如下:
public class MainActivity extends AppCompatActivity {
private EditText et;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.et);
tv = (TextView) findViewById(R.id.tv);
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (TextUtils.isEmpty(charSequence)) {
tv.setVisibility(View.VISIBLE);
} else {
tv.setVisibility(View.GONE);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
}