A. android EditText獲取焦點並彈出軟鍵盤
1、首先,在xml文件中通過讓edittext獲取焦點
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="17dp"
android:textColor="#333333"
android:textColorHint="#999999"
android:hint="請輸入課件描述..."
android:gravity="top|left"
android:background="@null"
>
<requestFocus/>
</EditText>
2、在清單文件中給activity添加android:windowSoftInputMode=」stateVisible」屬性,這樣一進入這個頁面的時候游標就自動顯示,軟鍵盤也顯示出來
<activity
android:name=".wonderfulmoment."
android:windowSoftInputMode="stateVisible"></activity>
B. android的edittext怎麼設置不默認被選中
android的edittext默認不被中,即不讓EditText獲取焦點即可。
設置方式:
1.在xml中在EditText父節點增加
android:focusable="true"
android:focusableInTouchMode="true" 表示將焦點給EditText的父節點
2.在代碼中 EditText editText= (EditText)findViewById(R.id.editText);
editText.clearFocus();
editText.setSelected(false);
表示將清除EditText的焦點
3.可以直接在Activity的聲明中,設置默認不彈出輸入框
android:windowSoftInputMode="stateHidden|adjustResize"
C. Android中EditText無法完全顯示
android:layout_alignBottom="@+id/name"
android:layout_alignTop="@+id/name"
這兩句話去掉就好了。網路下一些屬性的用法。
動手敲打碼是編程好的開始。也要學會網路
D. Android的EditText內容清空
可以的,是用setText().
可以布局xml里設置,比如:main.xml里: <TextView android:text="初始值" android:id="cnumber"/>
也可以在Activity里:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText et_number = (EditText) findViewById(R.id.cnumber);
et_number.setText("修改值");
//getText();獲取值
}
E. android 中怎麼控制EditText只能輸入數字和字母,不能有漢字,字元
例子如下:
strings.xml文件:
<string name="rule_password">`¬!"£$%^*()~=#{}[];':,./?/*-_+<>@&</string>
EditText的布局文件:
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:digits="@string/rule_password"/>
註:在strings.xml中不能直接寫特殊符號,如@&等特殊符號,可使用ASCII碼表示。
<的ASCII碼為 <
>的ASCII碼為 >
@的ASCII碼為 @
&的ASCII碼為 &
F. android 中如何限制 EditText 最大輸入字元數
方法一:
在 xml 文件中設置文本編輯框屬性作字元數限制
如:android:maxLength="10" 即限制最大輸入字元個數為10
方法二:
在代碼中使用InputFilter 進行過濾
//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大輸入字元數為20
[java] view plainprint?
01.public class TextEditActivity extends Activity {
02. /** Called when the activity is first created. */
03. @Override
04. public void onCreate(Bundle savedInstanceState) {
05. super.onCreate(savedInstanceState);
06. setContentView(R.layout.main);
07.
08. EditText editText = (EditText)findViewById(R.id.entry);
09. editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
10. }
11.}
public class TextEditActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText)findViewById(R.id.entry);
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
}
}
方法三:
利用 TextWatcher 進行監聽
[java] view plainprint?
01.package cie.textEdit;
02.
03.import android.text.Editable;
04.import android.text.Selection;
05.import android.text.TextWatcher;
06.import android.widget.EditText;
07.
08./*
09. * 監聽輸入內容是否超出最大長度,並設置游標位置
10. * */
11.public class MaxLengthWatcher implements TextWatcher {
12.
13. private int maxLen = 0;
14. private EditText editText = null;
15.
16.
17. public MaxLengthWatcher(int maxLen, EditText editText) {
18. this.maxLen = maxLen;
19. this.editText = editText;
20. }
21.
22. public void afterTextChanged(Editable arg0) {
23. // TODO Auto-generated method stub
24.
25. }
26.
27. public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
28. int arg3) {
29. // TODO Auto-generated method stub
30.
31. }
32.
33. public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
34. // TODO Auto-generated method stub
35. Editable editable = editText.getText();
36. int len = editable.length();
37.
38. if(len > maxLen)
39. {
40. int selEndIndex = Selection.getSelectionEnd(editable);
41. String str = editable.toString();
42. //截取新字元串
43. String newStr = str.substring(0,maxLen);
44. editText.setText(newStr);
45. editable = editText.getText();
46.
47. //新字元串的長度
48. int newLen = editable.length();
49. //舊游標位置超過字元串長度
50. if(selEndIndex > newLen)
51. {
52. selEndIndex = editable.length();
53. }
54. //設置新游標所在的位置
55. Selection.setSelection(editable, selEndIndex);
56.
57. }
58. }
59.
60.}
package cie.textEdit;
import android.text.Editable;
import android.text.Selection;
import android.text.TextWatcher;
import android.widget.EditText;
/*
* 監聽輸入內容是否超出最大長度,並設置游標位置
* */
public class MaxLengthWatcher implements TextWatcher {
private int maxLen = 0;
private EditText editText = null;
public MaxLengthWatcher(int maxLen, EditText editText) {
this.maxLen = maxLen;
this.editText = editText;
}
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
Editable editable = editText.getText();
int len = editable.length();
if(len > maxLen)
{
int selEndIndex = Selection.getSelectionEnd(editable);
String str = editable.toString();
//截取新字元串
String newStr = str.substring(0,maxLen);
editText.setText(newStr);
editable = editText.getText();
//新字元串的長度
int newLen = editable.length();
//舊游標位置超過字元串長度
if(selEndIndex > newLen)
{
selEndIndex = editable.length();
}
//設置新游標所在的位置
Selection.setSelection(editable, selEndIndex);
}
}
}
對應的 activity 部分的調用為:
[java] view plainprint?
01.package cie.textEdit;
02.
03.import android.app.Activity;
04.import android.os.Bundle;
05.import android.text.InputFilter;
06.import android.widget.EditText;
07.
08.public class TextEditActivity extends Activity {
09. /** Called when the activity is first created. */
10. @Override
11. public void onCreate(Bundle savedInstanceState) {
12. super.onCreate(savedInstanceState);
13. setContentView(R.layout.main);
14.
15. EditText editText = (EditText) findViewById(R.id.entry);
16. editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
17.
18. }
19.}
package cie.textEdit;
import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.widget.EditText;
public class TextEditActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText) findViewById(R.id.entry);
editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
}
}
限制輸入字元數為10個
main.xml 文件
[html] view plainprint?
01.<?xml version="1.0" encoding="utf-8"?>
02.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03. android:layout_width="fill_parent"
04. android:layout_height="fill_parent">
05. <TextView
06. android:id="@+id/label"
07. android:layout_width="fill_parent"
08. android:layout_height="wrap_content"
09. android:text="Type here:"/>
10. <EditText
11. android:id="@+id/entry"
12. android:singleLine="true"
13. android:layout_width="fill_parent"
14. android:layout_height="wrap_content"
15. android:background="@android:drawable/editbox_background"
16. android:layout_below="@id/label"/>
17. <Button
18. android:id="@+id/ok"
19. android:layout_width="wrap_content"
20. android:layout_height="wrap_content"
21. android:layout_below="@id/entry"
22. android:layout_alignParentRight="true"
23. android:layout_marginLeft="10dip"
24. android:text="OK" />
25. <Button
26. android:layout_width="wrap_content"
27. android:layout_height="wrap_content"
28. android:layout_toLeftOf="@id/ok"
29. android:layout_alignTop="@id/ok"
30. android:text="Cancel" />
31.</RelativeLayout>
<?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">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:"/>
<EditText
android:id="@+id/entry"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
G. android editText如何在代碼中設置可以編輯
http://blog.csdn.net/luliyuan/article/details/8065447
1、首先想到在xml中設置android:editable="false",但是如果想在代碼中動態設置可編輯狀態,沒有找到對應的函數
2、然後嘗試使用editText.setFocusable(false);和editText.setEnabled(false);設置不可編輯狀態;editText.setFocusable(true);和 editText.setEnabled(true);設置可編輯狀態。
發現在editText.setFocusable(false);和editText.setEnabled(false);時不可編輯,但是editText.setFocusable(true);和 editText.setEnabled(true);也是不可編輯的,感覺這個時候EditText控制項高亮度了,但是沒有焦點
3、最後嘗試使用editText.setFocusable(false);和editText.setFocusableInTouchMode(false);設置不可編輯狀態;editText.setFocusableInTouchMode(true);editText.setFocusable(true);editText.requestFocus();設置可編輯狀態
這個可以實現可編輯和不可編輯