EditText是TextView的子类所以在使用上与TextView十分的相似他们之间的绝大部分方法与属性可以共用,但EditText相对TextView而言增加了用户输入的功能。
之前的TextView的常用属性
android:inputType //设置该文本框的输入风格如密码,email,手机号码等;可用属性值参考API
android:minEms //设置最小宽度单位em
android:maxEms //设置最大宽度单位em
android:ems //设置宽度单位em
android:hint //设置提示文字
android:singleLine //是否为单行模式
android:lines //默认行数
android:scrollHorizontally //是否允许水平滚动
android:editable //该文本框是否允许编辑
android:drawableStart //在文本框开始处绘制图片
android:drawableLeft //在文本框左边处绘制图片,当然还有右边顶端底部等等;
android:ellipsize //当文本内容超出长度是怎么处理,none不做不理;start在文本开始处截断显示省略号;middle中间截断显示省略号;end结尾处截断显示省略号;marquee使用maequee滚动动画显示文本;
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/newEditText0" android:minEms="7" android:maxEms="10" android:hint="请输入姓名。。。" android:singleLine="true" android:drawableLeft="@drawable/ic_launcher" android:inputType="text" />
和之前一样大部分都是直接属性名前面加set;
绘制图片的方法
setCompoundDrawablesRelativeWithInTrinsicBounds(Drawable,Drawable,Drawable,Drawable)
//四个参数分别表示开始,顶部,结束,底部;
另外需要注意如setHint(int)函数的参数为int类型但它用来设置一个文本数据你可以在一个xml文件中写好你需要的数据再作为参数传入。如
editText.setHint(R.string.edittext);在xml文件中
<resources> <string name="app_name">My Application</string> <string name="action_settings">Settings</string> <string name="edittext">input you name</string><!--这个就是用来当做hint属性值的--> </resources>//这个xml文件在res/value/sstrings.xml;
用Java代码修改xml中定义好的EditText组件属性,但按钮按下时将EditText的内容用TextView显示出来;
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/newEditText0" android:minEms="7" android:maxEms="10" android:hint="请输入姓名。。。" android:singleLine="true" android:drawableLeft="@drawable/ic_launcher" android:inputType="text"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp" android:text="tmp" android:id="@+id/newTextView0"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="run" android:onClick="newbut"/> </LinearLayout>
//前面省略。。。 public class MainActivity extends AppCompatActivity { private EditText editText; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=(EditText)findViewById(R.id.newEditText0); textView=(TextView)findViewById(R.id.newTextView0); try { editText.setHint(R.string.edittext); editText.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher); } catch (NullPointerException e) { e.printStackTrace(); } } public void newbut(View V){ textView.setText(editText.getText()); } //后面省略。。。