介绍下EditText
在EditView继承与TextView,在官方文档中写的如下:
EditText is a thin veneer over TextView that configures itself to be editable.
下面介绍下EditText的属性
1.EditTex的UI 上只显示4行(只得不是内容只有4行)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:lines="4" android:text="@string/hello" />
2.EditTex的背景(修改主题)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:singleLine="true" android:text="@string/hello" />
3.EditTex在没有显示内容时,显示提示信息
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="hint" />
4.EditTex显示最多显示三行(字符个数未限制)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLines="3" android:text="@string/hello" />
5.EditText最少显示两行(字符个数未限制)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="2" android:text="@string/hello" />
6.EditText禁用(类似与TextView)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:enabled="false" android:text="@string/hello" />
7.EditText最多输入5个字符
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLength="5" android:text="@string/hello" />
8.EditText文字过多时如何显示(但是本人为实现,请指教)
<EditText android:layout_width="200dip" android:layout_height="wrap_content" android:singleLine="true" android:text="@string/hello" android:ellipsize="end"/>
9.EditText的任何位置上放一个图(控件未实现)
<!--android:drawableRight,在editveiw的右边放一个图或者控件 --> <EditText android:id="@+id/drawLeft" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableRight="@drawable/ic_launcher" android:text="@string/hello"/>
10.EditText禁止编辑(不能输入和删除,但是长按得conetct menu是有效的)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false" android:text="@string/hello"/>
11.EditText(不知道具体是什么功能android:contentDescription)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:soundEffectsEnabled="true" android:fitsSystemWindows="true" android:contentDescription="@string/hello"/>
12.EditText(android:tag)
<!-- android:tag 设置一个文本标签。可以通过View.getTag()或 for with View.findViewWithTag()检索含有该标签字符串的View。但 一般最好通过ID来查询View,因为它的速度更快,并且允 许编译时类型检查。 -->
13.EditText控制数据的输入类型(inpuType)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="time"/>" <!-- 注1--> 注1:
inpuType的值(这是官网提供的)
http://developer.android.com/reference/android/widget/TextView.html
14.EditText输入限定属性
android:digits="13123" (限定能输入的字符) android:numeric="integer"(限定能输入的整型) android:phoneNumber="true"(限定能输入手机号码)15.EditText的相关方法
editTextTest = (EditText)findViewById(R.id.drawLeft); // 获取光标的所在位置 int index = editTextTest.getSelectionStart(); // 设置贯光标的位置 editTextTest.setSelection(index+1);
16.EditAble类的相关方法
(1)在editText中的指定位置插入数据
mEditViewPhoneNum.getText().insert(index, "9").toString();(2)在editText中的指定区域间替换数据
mEditViewPhoneNum.getText().replace(index - 1, index,""); 还有一些方法这里不举例,后面附带一个手机拨号盘的ui设计代码:public class CallDemoActivity extends Activity { private EditText mEditViewPhoneNum; private Button[] mBtnArr = new Button[13]; private String mStrNum = ""; private boolean mCallPanelIsHiden = false; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.call); mEditViewPhoneNum = (EditText) findViewById(R.id.edit_mobile); mEditViewPhoneNum.setInputType(InputType.TYPE_NULL); mBtnArr[0] = (Button) findViewById(R.id.num0); mBtnArr[1] = (Button) findViewById(R.id.num1); mBtnArr[2] = (Button) findViewById(R.id.num2); mBtnArr[3] = (Button) findViewById(R.id.num3); mBtnArr[4] = (Button) findViewById(R.id.num4); mBtnArr[5] = (Button) findViewById(R.id.num5); mBtnArr[6] = (Button) findViewById(R.id.num6); mBtnArr[7] = (Button) findViewById(R.id.num7); mBtnArr[8] = (Button) findViewById(R.id.num8); mBtnArr[9] = (Button) findViewById(R.id.num9); mBtnArr[10] = (Button) findViewById(R.id.callup); mBtnArr[11] = (Button) findViewById(R.id.hide); mBtnArr[12] = (Button) findViewById(R.id.delete); ButtonListener buttonListener = new ButtonListener(); mBtnArr[0].setOnClickListener(buttonListener); mBtnArr[1].setOnClickListener(buttonListener); mBtnArr[2].setOnClickListener(buttonListener); mBtnArr[3].setOnClickListener(buttonListener); mBtnArr[4].setOnClickListener(buttonListener); mBtnArr[5].setOnClickListener(buttonListener); mBtnArr[6].setOnClickListener(buttonListener); mBtnArr[7].setOnClickListener(buttonListener); mBtnArr[8].setOnClickListener(buttonListener); mBtnArr[9].setOnClickListener(buttonListener); mBtnArr[10].setOnClickListener(buttonListener); mBtnArr[11].setOnClickListener(buttonListener); mBtnArr[12].setOnClickListener(buttonListener); mBtnArr[12].setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { if (v.getId() == R.id.delete) { mStrNum = ""; mEditViewPhoneNum.setText(mStrNum); return true; } return false; } }); } private class ButtonListener implements Button.OnClickListener { @Override public void onClick(View v) { int index = mEditViewPhoneNum.getSelectionStart(); switch (v.getId()) { case R.id.num0: { mEditViewPhoneNum.getText().insert(index, "0").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num1: { mEditViewPhoneNum.getText().insert(index, "1").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num2: { mEditViewPhoneNum.getText().insert(index, "2").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num3: { mEditViewPhoneNum.getText().insert(index, "3").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num4: { mEditViewPhoneNum.getText().insert(index, "4").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num5: { mEditViewPhoneNum.getText().insert(index, "5").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num6: { mEditViewPhoneNum.getText().insert(index, "6").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num7: { mEditViewPhoneNum.getText().insert(index, "7").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num8: { mEditViewPhoneNum.getText().insert(index, "8").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.num9: { mEditViewPhoneNum.getText().insert(index, "9").toString(); mEditViewPhoneNum.setSelection(index + 1); } break; case R.id.delete: { mStrNum = mEditViewPhoneNum.getText().toString(); if (mStrNum.length() > 0) { if (index > 0) { mEditViewPhoneNum.getText().replace(index - 1, index, ""); mEditViewPhoneNum.setSelection(index - 1); } } } break; case R.id.hide: { if (mCallPanelIsHiden) { for (int i = 0; i < mBtnArr.length - 1; i++) { mBtnArr[i].setVisibility(View.VISIBLE); } mBtnArr[12].setId(R.id.delete); mBtnArr[12].setText("X"); mCallPanelIsHiden = false; } else { for (int i = 0; i < mBtnArr.length - 1; i++) { mBtnArr[i].setVisibility(View.GONE); } mBtnArr[12].setId(R.id.hide); mBtnArr[12].setText("Hide"); mCallPanelIsHiden = true; } } break; case R.id.callup: { mStrNum = mEditViewPhoneNum.getText().toString(); if (mStrNum.equals("")) { Toast.makeText(CallDemoActivity.this, "手机号码不能为空!", Toast.LENGTH_LONG).show(); } else { mStrNum = ""; mEditViewPhoneNum.setText(mStrNum); } } break; default: break; } } } }
以及对应的call.xml<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="true" android:cacheColorHint="#00000000" > </ListView> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentTop="false" android:stretchColumns="*"> <TableRow> <RelativeLayout android:id="@+id/content" android:layout_width="fill_parent" android:layout_span="3"> <EditText android:id="@+id/edit_mobile" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:scrollHorizontally="true" android:editable="false" android:textSize="30dip" /> <Button android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/delete" android:text="X" android:textSize="30dip" android:textStyle="bold" /> </RelativeLayout> </TableRow> <TableRow > <Button android:id="@+id/num1" android:text="1" android:layout_width="1dip" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/num2" android:text="2" android:layout_width="1dip" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/num3" android:layout_height="wrap_content" android:layout_width="1dip" android:text="3" android:textStyle="bold" android:textSize="20dip"> </Button> </TableRow> <TableRow > <Button android:id="@+id/num4" android:layout_width="1dip" android:text="4" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/num5" android:layout_width="1dip" android:text="5" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/num6" android:layout_width="1dip" android:text="6" android:textStyle="bold" android:textSize="20dip" android:layout_height="wrap_content"> </Button> </TableRow> <TableRow > <Button android:id="@+id/num7" android:layout_width="1dip" android:text="7" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/num8" android:text="8" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/num9" android:layout_height="wrap_content" android:layout_width="1dip" android:text="9" android:textStyle="bold" android:textSize="20dip"> </Button> </TableRow> <TableRow> <Button android:id="@+id/callup" android:layout_width="1dip" android:text="call up" android:textSize="20dip" android:textStyle="bold" android:textColor="#33FF00" /> <Button android:id="@+id/num0" android:layout_width="1dip" android:text="0" android:textSize="20dip" android:textStyle="bold" /> <Button android:id="@+id/hide" android:layout_width="1dip" android:text="Hide" android:textSize="20dip" android:textStyle="bold" /> </TableRow> </TableLayout> </RelativeLayout>
这里要做个修改:
拨号盘的例子的xml中,button属性的android:layout_width="1dip"改成android:layout_weight="1d"
请大家多多指教,有问题请联系邮箱,或者留言、
源代码下载地址:http://download.csdn.net/download/alex0203/3731182