2013-06-18 82 views
0

我有3個EditTexts在一行中,但在3個不同的佈局。我設置它們,所以當我點擊輸入時,它將跳轉到下一個佈局的那一行的下一個EditText。問題是,當我點擊從行上的第一個EditText進入時,它會進入第三個。從第三個是第二個,第二個是第一個。這就像我在第一個EditText上按回車鍵,它進入第二個,然後到第三個相同的輸入。 我怎樣才能阻止它從第一個EditText跳到第二個,然後第三個在同一按下的輸入鍵?在輸入,跳轉到下一個EditText問題

下面是我的一些代碼:

et.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v1, int keyCode, KeyEvent KEYCODE_ENTER) { 
     l2.getChildAt(localizarer).requestFocus(); 
     return true; 
    } 
}); 

et2.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v2, int keyCode, KeyEvent KEYCODE_ENTER) { 
     l3.getChildAt(localizarer).requestFocus(); 
     return true; 
    } 
}); 

et3.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v3, int keyCode, KeyEvent KEYCODE_ENTER) { 
     l1.getChildAt(localizarer).requestFocus(); 
     return true; 
    } 
}); 

這就像我需要某種break功能的,哈哈。 我該如何解決這個問題? 謝謝,祝你有美好的一天/晚!

通過這樣修正:

et.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     // If the event is a key-down event on the "enter" button 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER)) 
     { 
      // Perform action on key press 
      l2.getChildAt(localizarer).requestFocus(); 
      return true; 
     } 
     return false; 
    } 
}); 

但現在一個老問題又回來了,就跳到我edittexts,而不是在佈局要第一個孩子的第二排它進入第二..

+0

也許你應該提供您的創作例程。 – AlexS

+0

我有,在這裏:http://stackoverflow.com/questions/17171822/getchildat-getting-it-wrong。它開始工作,當我將onKeyListeners放置到所有my et的時候,但是在我修改了onkeylisteners之後,它開始再次跳到下一行,並且沒有檢測到第一個未找到的子頁面 –

+0

Page。 – AlexS

回答

0

你的編輯文本是否在你的xml中定義,你有他們在那裏的命令? 如果不工作,你可以使用

android:nextFocusDown 

設置順序

+0

不,它們沒有定義,它們是動態創建的。問題不是焦點順序,而是它調用了我的OnKeyListener兩次。因此,它轉到第二個EditText,然後再次調用監聽器並轉到第三個EditText,所有在一個Enter鍵。我猜這是問題,但我不知道如何解決它。 –

+0

你有沒有試過讓android決定而不是強迫行爲? – user1634451

0

你爲什麼不使用:

et1.requestFocus(); 

而不是

l1.getChildAt(localizarer).requestFocus(); 
+0

因爲它們是動態創建的:)沒有et1,我創建了一個未定義數量的et1,et2's和et3's.I修正了這個問題,我將編輯並編寫修復程序,但現在我偶然發現了一個我可以不知道.. –