[英]Xamarin Android Edittext Keypress executes also
您好,我剛從Xamarin開始使用一個Android項目,並且在按下edittext時遇到了問題。 當在我的第一個Edittext上觸發Enter並將其聚焦於Edittext(txtArtikel)時,此觸發器將觸發此Edittext的按鍵,並跳至第三個Edittext。 因此,只按一次Enter鍵就跳過了我的第二個Edittext。 誰能幫我?
txtArtikel.KeyPress += txtArtikelPress;
private void txtArtikelPress(object sender, View.KeyEventArgs e)
{
e.Handled = false;
if (e.KeyCode == Keycode.Enter)
{
txtAantal.RequestFocus();
}
}
編輯
我仍在使用Keypress,現在正在尋找Enter和Escape。 當txtWerf為空時,它跳轉到txtArtikel,但是當它包含文本時,它會轉到txtAantal。
private void txtWerfPress(object sender, View.KeyEventArgs e)
{
if (e.KeyCode == Keycode.Enter && e.Event.Action == KeyEventActions.Down)
{
if (txtWerf.Text.Trim() != "")
{
if (txtArtikel.RequestFocus())
e.Handled = true;
}
}
else
e.Handled = false;
}
private void txtArtikelPress(object sender, View.KeyEventArgs e)
{
if (e.KeyCode == Keycode.Enter && e.Event.Action == KeyEventActions.Down)
{
if (txtArtikel.Text.Trim() != "")
{
if (txtAantal.RequestFocus())
e.Handled = true;
}
}
else if (e.KeyCode == Keycode.Escape && e.Event.Action == KeyEventActions.Down)
{
if (txtWerf.RequestFocus())
e.Handled = true;
}
else
Scanner.CheckForScannedData(sender, ref e);
e.Handled = false;
}
private void txtAantalPress(object sender, View.KeyEventArgs e)
{
if (e.KeyCode == Keycode.Escape && e.Event.Action == KeyEventActions.Down)
{
if (txtArtikel.RequestFocus())
e.Handled = true;
}
else
e.Handled = false;
}
您無需處理KeyPress
事件即可將焦點設置到下一個EditText
。 Android有一個很好的算法,可以在完成編輯后處理焦點。
當您刪除事件處理程序時,應用程序在按Enter時的行為如何? 是否將焦點設置為正確的EditText
? 如果它聚焦於錯誤的視圖,那么當您在Android上單擊“ Soft Keyboard Next”時,應該看看如何移動到另一個EditText 。
如果焦點根本沒有改變,那么您應該使用android:imeOptions
告訴Android用戶完成輸入后該怎么做android:imeOptions
: //developer.android.com/guide/topics/ui/controls/text。 html#Actions 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.