EditText屬性及使用

EditText常見屬性:

屬性 功能
android:hint="提示信息" 設置顯示在控件上的提示信息
android:numeric="integer" 設置只能顯示數字,integer:整數;decimal:小數
android:singleLine="true" 單行輸入,設置爲true時文字不會自動換行
android:password="true"  設置只能輸入密碼
android:textColor = "#ff8c00" 字體顏色
android:textStyle="bold" 設置字體,主要有bold, italic
android:capitalize = "characters" 設置英文字母大寫類型,sentences僅第一個字母大寫,words每個單詞首字母大小,用空格區分單詞;characters每個英文字母都大寫。
android:textColorHighlight="#cccccc" 被選中文字的底色,默認爲藍色
android:textColorHint="#ffff00"  設置提示信息文字的顏色,默認爲灰色
android:textScaleX="1.5"  控制字與字之間的間距
android:background="@null"  空間背景,這裏沒有,指透明
android:textAppearance="?android:attr/textAppearanceLargeInverse" 文字外觀,這裏引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,有則使用,無則不用
android:ellipsize="end" 自動隱藏尾部溢出數據,通常用於文字內容過長一行沒法所有顯示時

    Enter鍵圖標的設置:

        軟鍵盤的Enter鍵默認顯示的是「完成」,但能夠對其進行設置,使其更加符合本身項目的需求。具體爲改變android:imeOptions屬性,其取值與對應的界面以下:
    java

    android:imeOptions 對應常量 功能
    actionUnspecified EditorInfo.IME_ACTION_UNSPECIFIED
    回車鍵圖標
    actionNone EditorInfo.IME_ACTION_NONE 回車鍵圖標,輸入框右側不帶任何提示
    actionGo EditorInfo.IME_ACTION_GO 顯示「去往」
    actionSearch EditorInfo.IME_ACTION_SEARCH 顯示錶示搜索的放大鏡圖標
    actionSend EditorInfo.IME_ACTION_SEND 顯示「發送」
    actionNext EditorInfo.IME_ACTION_NEXT 顯示「下一個」
    actionDone EditorInfo.IME_ACTION_DONE 顯示「完成」
    flagNoExtractUi
    使軟鍵盤不全屏顯示,只佔用一部分屏幕

    對intent的默認焦點進行設置

        對intent的默認光標進行設置,使intent的默認光標不在EditText上,從而在進入intent時不至於因爲當即打開輸入法,影響美觀。intent默認將從上至下,從左至右的第一個能夠輸入控件做爲焦點。
    android

        <方法一>api

    button.setFocusable(true);
    button.requestFocus();
    button.setFocusableInTouchMode(true);

        <方法二:在EditText前面放置一個看不到的LinearLayout,讓他率先獲取焦點>ide

    <LinearLayout 
        android:focusable="true" 
        android:focusableInTouchMode="true" 
        android:layout_width="0px" 
        android:layout_height="0px"/>

    軟鍵盤的設置

        在Android中,軟鍵盤的調起有時會致使原來的界面被擠上去,或者致使界面下面的tab導航被擠上去,這時可使用Manifest中的Activity的android:windowSoftInputMode的"adjustPan"屬性進行設置。post

    EditText設置文本的可見性

    if (isHidden) {
    			// 設置EditText文本爲可見的
    			et.setTransformationMethod(HideReturnsTransformationMethod
    					.getInstance());
    		} else {
    			// 設置EditText文本爲隱藏的
    			et.setTransformationMethod(PasswordTransformationMethod
    					.getInstance());
    		}
    		isHidden = !isHidden;
    		et.postInvalidate(); // 刷新頁面
    		// 切換後將EditText光標置於末尾
    		CharSequence charSequence = et.getText();
    		if (charSequence instanceof Spannable) {
    			Spannable spanText = (Spannable) charSequence;
    			Selection.setSelection(spanText, charSequence.length());
    		}

    EditText設置響應用戶本身的操做

        一般在用戶點擊一個EditText時,其默認會先獲取焦點,而後第二次點擊纔會響應用戶的操做。因此能夠經過屏蔽掉其獲取焦點的方法而使得第一次點擊即可響應用戶本身的操做。
    字體

    final InputMethodManager imm = (InputMethodManager) mContext
    				.getSystemService(Context.INPUT_METHOD_SERVICE);
    		et.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				imm.hideSoftInputFromWindow(et.getWindowToken(), 0); // 隱藏軟鍵盤(無焦點時關閉軟鍵盤)
    				et.setInputType(InputType.TYPE_NULL); // 關閉軟鍵盤(有焦點時關閉軟鍵盤)
    				// Do your own business!
    			}
    		});

    EditText設置是否自動彈出鍵盤

    android:focusable="false"    //鍵盤永遠不會彈出
    <activity android:name=".AddLinkman"android:windowSoftInputMode="adjustUnspecified|stateHidden"/>    //不自動彈出鍵盤
    InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(etEditText.getWindowToken(), 0);    //關閉鍵盤(好比輸入結束後執行)
    ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);    //自動彈出鍵盤
    etEditText.requestFocus();    //讓EditText得到焦點,可是得到焦點並不會自動彈出鍵盤

    EditText光標的設置

    et.requestFocusFromTouch(); // 將光標放在點擊位置
    et.requestFocus(); // 默認方式得到焦點
    int cursor = et.getSelectionStart(); // 光標插入處
    et.setSelection(et.getText().length()); // 將光標插到文本末尾
    // android:cursorVisible="false" 隱藏光標
    // android:background="#00000000" 不要文本框背景

        以上是我對EditText的一些經常使用功能、屬性的總結,若有理解不當,或是有更多使用技巧,請與我聯繫,謝謝!
    spa

相關文章
相關標籤/搜索