EditText的講解一、《實例一》:用戶登錄 屬性說明:很多屬性和TextView相同就不做過多的解釋,這裡就對這兩個屬性進行說明:android:hint="預設提示文本" android:textColorHint="#95A1AA",第一...
EditText的講解
一、《實例一》:用戶登錄
<?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="match_parent" android:orientation="vertical" android:background="#ffffff" android:gravity="center"> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:background="@drawable/txt_radiuborder" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:orientation="vertical" android:paddingLeft="20dp" android:paddingRight="20dp"> <EditText android:id="@+id/edit1" android:layout_width="match_parent" android:layout_height="100dp" android:drawableLeft="@mipmap/ic_account" android:drawablePadding="60px" android:padding="5px" android:singleLine="true" android:hint="用戶名" android:textColorHint="#98f5ff" android:textSize="30sp"/> <EditText android:id="@+id/edit2" android:layout_width="match_parent" android:layout_height="100dp" android:drawableLeft="@mipmap/ic_password" android:drawablePadding="60px" android:padding="5px" android:singleLine="true" android:hint="密碼" android:textColorHint="#98f5ff" android:textSize="30sp"/> </LinearLayout> <Button android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="30dp" android:text="登錄" android:textSize="30sp" android:textColor="#000000" android:textStyle="bold" android:background="@drawable/txt_radiuborder"/> </LinearLayout>
屬性說明:很多屬性和TextView相同就不做過多的解釋,這裡就對這兩個屬性進行說明:
android:hint="預設提示文本" android:textColorHint="#95A1AA",第一個屬性設置提示信息,第二個屬性設置提示信息的顏色
二、常用的屬性詳解
(1)獲得焦點後選擇所有的文本內容android:selectAllOnFocus="true"
(2)限制EditText的輸入類型android:inputType="phone"
類型描述:文本型
android:inputType="none"
android:inputType="text"
android:inputType="textCapCharacters"
android:inputType="textCapWords"
android:inputType="textCapSentences"
android:inputType="textAutoCorrect"
android:inputType="textAutoComplete"
android:inputType="textMultiLine"
android:inputType="textImeMultiLine"
android:inputType="textNoSuggestions"
android:inputType="textUri"
android:inputType="textEmailAddress"
android:inputType="textEmailSubject"
android:inputType="textShortMessage"
android:inputType="textLongMessage"
android:inputType="textPersonName"
android:inputType="textPostalAddress"
android:inputType="textPassword"
android:inputType="textVisiblePassword"
android:inputType="textWebEditText"
android:inputType="textFilter"
android:inputType="textPhonetic"
數字型:
android:inputType="number"
android:inputType="numberSigned"
android:inputType="numberDecimal"
android:inputType="phone"//撥號鍵盤
android:inputType="datetime"
android:inputType="date"//日期鍵盤
android:inputType="time"//時間鍵盤
(3)設置最小行,最大行,單行,多行,自動換行
最小行的行數:android:minLines="3"
最大的行數:android:maxLines="3"
設置字與字的水平間隔:android:textScaleX="1.5"
設置字與字的垂直間隔:android:textScaleY="1.5"
設置英文字母大寫類型的屬性:android:capitalize 預設none,還有三個可選項
- sentences:僅第一個字母大寫
- words:每一個單詞首字母大小,用空格區分單詞
- characters:每一個英文字母都大寫
(4)EditText四周的間隔距離與內部文字與邊框間的距離:和TextView一樣padding
(5)EditText的游標控制:在Java代碼中使用setSelection(int index)或者setSelection(int start,int end),其中一個參數的是設置游標位置的,兩個參數的是設置起始位置與結束位置的中間括的部分,即部分選中!
當然我們也可以調用setSelectAllOnFocus(true);讓EditText獲得焦點時選中全部文本!
另外我們還可以調用setCursorVisible(false);設置游標不顯示
還可以調用getSelectionStart()和getSelectionEnd獲得當前游標的前後位置
三、實例二:帶有表情文本輸入框
佈局文件
<?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="match_parent" android:orientation="vertical" android:background="#ffffff" android:gravity="center"> <Button android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="30dp" android:text="添加表情" android:textSize="30sp" android:textColor="#000000" android:textStyle="bold" android:background="@drawable/txt_radiuborder"/> <EditText android:id="@+id/edit1" android:layout_width="match_parent" android:layout_height="100dp" android:padding="5px" android:singleLine="true"/> </LinearLayout>
Java文件:
import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; import android.text.style.ImageSpan; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText editText1; private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText1 = (EditText) findViewById(R.id.edit1); btn1 = (Button) findViewById(R.id.btn1); // 設置監聽事件 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { SpannableString ss = new SpannableString("img"); Drawable drawable = MainActivity.this.getResources().getDrawable(R.mipmap.ic_launcher); drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); ImageSpan imageSpan = new ImageSpan(drawable,ImageSpan.ALIGN_BASELINE); ss.setSpan(imageSpan,0,3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); int cursor = editText1.getSelectionStart(); editText1.getText().insert(cursor,ss); } }); } }
效果圖: