我有一個TextView
與android:maxLength
設置爲3
和另一個android:maxLength
設置爲7
。Focus next textview
我想要重點自動移動到第二個TextView
一旦3
字符的第一個TextView
填滿了。如何在不繼承TextView
並編寫自定義實現的情況下實現這一目標?
我有一個TextView
與android:maxLength
設置爲3
和另一個android:maxLength
設置爲7
。Focus next textview
我想要重點自動移動到第二個TextView
一旦3
字符的第一個TextView
填滿了。如何在不繼承TextView
並編寫自定義實現的情況下實現這一目標?
我還沒有嘗試,但這可能工作。
設置一個監聽火的時候,文本被改變,這種用途
addTextChangedListener(TextWatcher watcher)
然後基於文本的長度,你可以請求焦點切換到下一個字段。
如果您想查找下一個字段,您可以撥打View.focusSearch(View.FOCUS_FORWARD)
在指定的方向上查找可以聚焦的最近視圖。這實際上並沒有把重點放在這個觀點上。
對於未來的讀者期待COPY/PASTE
int MAX_LENGTH = 3;
txt1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() == MAX_LENGTH) {
txt2.requestFocus(View.FOCUS_DOWN);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
我這樣做 - 公共無效onTextChanged(CharSequence中,詮釋開始,詮釋之前,詮釋計數){ 如果(s.length()== 3 ){ Log.d(TAG,「下一個焦點在:」+ tv1.getNextFocusDownId()); tv1.requestFocus(View.FOCUS_DOWN); } 但它沒有工作 - 我做錯了什麼? 當日志長度爲3時,日誌會正確打印該消息,但焦點不會自動切換到下一個視圖。 – Naseer 2010-06-01 08:04:13
請忽略我以前的評論 - tv2.requestFocus()工作。 謝謝! – Naseer 2010-06-01 08:14:58
View.FOCUS_FORWARD不是View.focusSearch的允許值。只有真正的方向。 – dabluck 2017-02-07 20:27:11