標籤:
原文:http://www.makaidong.com/IT部落格園/18615.shtml
1、edittext輸入的文字為密碼形式的設定
(1)通過.xml裡設定:
把該edittext設為:android:password="true" // 以”.”形式顯示文本
(2)在代碼裡設定:
通過設定edittext的settransformationmethod()方法來實現隱藏密碼或這顯示密碼。
edittext.settransformationmethod(passwordtransformationmethod.getinstance());//設定密碼為不可見。
2、(1)edittext輸入的文字為電話號碼
android:phonenumber=”true” //輸入電話號碼
3、edittext字數限制的設定
(1)在.xml中設定:android:maxlength=“50”
(2)代碼中設定:
edittext.setfilters(new inputfilter[]{newinputfilter.lengthfilter(100)});
4、edittext設定字型
android:typeface="monospace" //設定字型。字形有:normal, sans, serif,monospace
5、edittext是否可編輯
android:editable // 是否可編輯
6、在edittext中軟鍵盤的調起、關閉
(1)edittext有焦點(focusable為true)阻止IME彈出
edittext=(edittext)findviewbyid(r.id.txtbody);
edittext.setontouchlistener(new ontouchlistener(){
public boolean ontouch(view v, motionevent event){
edittext.setinputtype(inputtype.type_null); //關閉軟鍵盤
return false;
}
});
(2)當eidttext無焦點(focusable=false)時阻止IME彈出
inputmethodmanager imm =
(inputmethodmanager)getsystemservice(input_method_service);
imm.hidesoftinputfromwindow(edittext.getwindowtoken(),0);
(3)調用數字鍵台並設定輸入類型和鍵盤為英文
etnumber.setinputtype(inputtype.type_class_number); //調用數字鍵台
rledittext.setinputtype(inputtype.type_text_flag_multi_line);//設定輸入類型和鍵盤為英文 或者:android:inputtype="texturi|textmultiline"
(4)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獲得焦點,但是獲得焦點並不會自動彈出鍵盤
7、android:layout_gravity和android:gravity的區別
(1)android:layout_gravity是本元素對父元素的重力方向。
(2)android:gravity是本元素所有子項目的重力方向。
8、android:padding和android:layout_margin區別
這兩個都可以設定邊距,但有細微的區別:
(1)android:padding是相對父view的邊距
(2)android:layout_margin是相對同一級view的邊距
例:linearlayout是水平布局,下面有兩個按鈕,
(a)如果右邊的按鈕想距左邊的按鈕15px,因為這兩個按鈕是同一級的,應該用android:layout_margin;
(b)如果右邊的按鈕想距左邊的距離為350px,應該用android:padding
9、android:numeric//只接受數字
android:numeric來控制輸入的數字類型,一共有三種分別為integer(正整數)、signed(帶正負號的整數,有正負)和decimal(浮點數)。
10、enter鍵表徵圖的設定
軟鍵盤的enter鍵預設顯示的是“完成”文本,我們知道按enter建表示前置工作已經準備完畢了,要去什麼什麼啦。比如
11、使用android:imeoptinos可對android內建的軟鍵盤進行一些介面上的設定:
android:imeoptions="flagnoextractui" //使軟鍵盤不全螢幕顯示,只佔用一部分螢幕 同時,這個屬性還能控制項軟鍵盤右下角按鍵的顯示內容,預設情況下為斷行符號鍵 android:imeoptions="actionnone" //輸入框右側不帶任何提示 android:imeoptions="actiongo" //右下角按鍵內容為‘開始‘ android:imeoptions="actionsearch" //右下角按鍵為放大鏡圖片,搜尋 android:imeoptions="actionsend" //右下角按鍵內容為‘發送‘ android:imeoptions="actionnext" //右下角按鍵內容為‘下一步‘ android:imeoptions="actiondone" //右下角按鍵內容為‘完成‘
12、限定edittext能輸入數字和字母,並且預設輸入為數字,如社會安全號碼碼
android:inputtype="number" android:digits="0123456789xyzxyz"
13、軟鍵盤的調起導致原來的介面被擠
上去,或者導致介面下面的tab導航被擠上去,解決方案如下
解決方案:
使用manifest中的activity的android:windowsoftinputmode的"adjustpan"屬性。
另外注意:有關軟鍵盤的問題可參考android:windowsoftinputmode中屬性。
14、edittext游標詳解 edittext.requestfocusfromtouch();//讓游標放入到點擊位置。 edittext.requestfocus();//預設獲得焦點
edittext editor = (edittext)getcurrentview();//游標處插入 int cursor = editor.getselectionstart(); editor.gettext().insert(cursor,delta);
讓游標移到末端(這樣文字就會向前顯示) edittext et = ... string text = "text"; et.settext(text); et.setselection(text.length());
android:cursorvisible="false" 隱藏游標
android:background="#00000000"//不要文字框背景
android - 文字框的IME控制和預設焦點設定
在開發中,必不可少的會使用到文字框(edittext)來進行資料錄入,也就會需要對IME進行一些控制。
先看下layout定義檔案中的和IME有關的屬性:
屬性名稱 |
說明 |
android:inputtype |
指定IME的類型,int類型,可以用|選擇多個。取值可以參考:android.text.inputtype類。取值包括:text, texturi, phone,number,等。 |
android:imeoptions |
指定IME視窗中的斷行符號鍵的功能,可選值為normal, actionnext,actiondone,actionsearch等。部分IME對此的支援可能不夠好。 |
下面的layout定義檔案舉了一些例子說明inputtype和imeoptions的使用。
<edittextandroid:id="@+id/textnormal"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="normaltext"
android:inputtype="text"
android:imeoptions="actionnext"
/>
<edittextandroid:id="@+id/textinteger"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="integeronly"
android:inputtype="number"
android:imeoptions="actionnext"
/>
<edittextandroid:id="@+id/textphone"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="phonenumber"
android:inputtype="phone"
android:imeoptions="actionnext"
/>
<edittextandroid:id="@+id/textemail"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="email"
android:imeoptions="actionsend"
android:inputtype="textemailaddress"
/>
<edittextandroid:id="@+id/textsite"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="website"
android:imeoptions="actiondone"
android:inputtype="texturi"
/>有時候也要對intent的預設焦點進行設定,不至於在intent跳轉的時候預設焦點(游標)在edittext上,導致進入intent就開啟IME,影響介面美觀。
預設焦點的順序是:從上倒下從左至右第一個可以輸入的控制項作為焦點
可以使用:
button.setfocusable(true);
button.requestfocus();
button.setfocusableintouchmode(true);
也可以:
在edittext前面放置一個看不到的linearlayout,讓他率先擷取焦點:<linearlayoutandroid:focusable="true"android:focusableintouchmode="true"android:layout_width="0px"android:layout_height="0px"/>
android edittext 屬性匯總
android edittext 屬性匯總
android:layout_gravity="center_vertical" 設定控制項顯示的位置:預設top,這裡置中顯示,還有bottom android:hint="請輸入數字!"
設定顯示在空間上的提示資訊 android:numeric="integer" 設定只能輸入整數,如果是小數則是:
decimal android:singleline="true" 設定單行輸入,一旦設定為true,則文字不會自動換行。
android:password="true" 設定只能輸入密碼
android:textcolor = "#ff8c00" 字型顏色
android:textstyle="bold" 字型,bold, italic, bolditalic android:textsize="20dip" 大小
android:capitalize = "characters" 以大寫字母寫
android:textalign="center" edittext沒有這個屬性,但textview有 android:textcolorhighlight="#cccccc" 被選中文字的底色,預設為藍色
android:textcolorhint="#ffff00" 設定提示資訊文字的顏色,預設為灰色 android:textscalex="1.5" 控制字與字之間的間距
android:typeface="monospace" 字型,normal, sans, serif, monospace android:background="@null" 空間背景,這裡沒有,指透明
android:layout_weight="1" 權重,控制控制項之間的地位,在控制控制項顯示的大小時蠻有用的。
android:textappearance="?android:attr/textappearancelargeinverse" 文字外觀,這裡引用的是系統內建的一個外觀,?表示系統是否有這種外觀,否則使用預設的外觀。不知道這樣理解對不對? 通過edittext的layout xml檔案中的相關屬性來實現:
1. 密碼框屬性 android:password="true" 這條可以讓edittext顯示的內容自動為星號,輸入時內容會在1秒內變成*字樣。
2. 純數字 android:numeric="true" 這條可以讓IME
Android開發之EditText屬性詳解