2013-04-20 40 views
0

我有一個自定義適配器設置的GridView。自定義適配器的getView()方法返回帶有兩個TextView和一個水平排列的EditText的LinearLayout。我製作了一個用於在EditText中輸入文本的自定義數字鍵盤。鍵盤包含NEXT和PREV按鈕以及造成問題。我想要NEXT按鈕來自動將下一行中的下一個EditText與上一個按鈕進行對焦。 NEXT按鈕onKeyPress看起來像:Android的GridView焦點發布兒童?

View v=getWindow().getCurrentFocus().focusSearch(View.FOCUS_FORWARD); 
if(v!=null) 
v.requestFocus(); 

該代碼似乎是正確的。問題是,假設當前只有三行可以看到gridView,如果焦點在第三個EditText上,並且按下了NEXT,它就沒有任何關注。我不知道如何解決這個問題。如果有人知道如何解決它。

Thanx提前。

回答

0

您可以保持所有editText的ID的集合是否按照相同的順序進行添加,並將它們添加到渲染中。

在這種情況下,clickHandler或一個/上一個按鈕,U可以檢查以下內容:

  1. 前頁clickHandler:如果存在選擇先在列表中,那麼你可能需要將焦點設置在最後一個元素上名單。
  2. clickHandler of NEXT:如果目前的選擇是列表中的最後一個,那麼你可能想要將焦點設置在列表中的第一個元素上。

另外,如果你不想要列表回滾功能,你可以檢查元素在列表中的位置,並以任何你想要的方式處理邊緣元素。

希望我能正確理解你的問題。

HTH

+0

是的,我可以節省EditTexts的IDS但如何集合通知處理這也是未來的EditText並且是前一個?我的意思是語法。如果你也可以幫我。 Thanx – 2013-04-20 11:13:13

+0

我的意思是你可以告訴我要寫代碼,我是新來的android? – 2013-04-20 11:14:30