【问题标题】:Next,Previous,Done buttons above keyboardNext,Previous,Done 键盘上方的按钮
【发布时间】:2014-03-01 14:32:55
【问题描述】:

我知道这个问题是在 here 之前提出的。但是没有找到解决办法。

我想要的是在键盘上方有 Next、Previous 和 Done 按钮 (我知道它模仿 iphone 键盘,但我无助于它的要求)。

像这样:

现在我尝试的是::

所以,我在一个布局中使用了三个按钮并分配了属性android:alignParentBottom="true" 并在清单中添加android:windowSoftInputMode="adjustResize"

看起来像这样 ::

而我使用“下一个”“上一个”按钮来回移动的操作是:

int next=1,prev=1;
public boolean onTouch(View arg0, MotionEvent arg1){                
            prev=next=1;                
            return false;
        }
});
edUserName.setOnTouchListener(new View.OnTouchListener(){
        public boolean onTouch(View arg0, MotionEvent arg1){
            prev=next=2;
            return false;
        }
});
edCity.setOnTouchListener(new View.OnTouchListener(){
        public boolean onTouch(View arg0, MotionEvent arg1){
            prev=next=3;
            return false;
        }
 });
btnNext.setOnClickListener(new View.OnClickListener(){          
        public void onClick(View arg0) {                
            if(next==1){    
                next++;     
                prev++;
                edUserName.requestFocus();                          
            }else if(next==2){
                next++;
                prev++;
                edCity.requestFocus();   
            }
        }
});
btnPrevious.setOnClickListener(new View.OnClickListener(){
        public void onClick(View arg0) {                
            if(prev==2){
                prev--;
                next--;
                edName.requestFocus();
            }else if(prev==3){
                prev--;
                next--;
                edUserName.requestFocus();
            }
        }
 });

这让我可以使用下一个和上一个按钮来回移动。

现在的问题::

  1. 我知道它有点脏。如果有更好的方法来使用下一个和上一个按钮来回移动,请指导。

  2. 我只想在键盘可见时显示按钮,否则隐藏它们。我该怎么做?

  3. “完成”按钮,我需要隐藏键盘它的显示,我试过这个,但是,它有时不起作用。 :

    InputMethodManager imm = (InputMethodManager)getSystemService (Context.INPUT_METHOD_SERVICE);

    if(imm != null){

    imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);

    }

  4. 如何隐藏建议。

请帮帮我。

谢谢。

【问题讨论】:

标签: android keyboard


【解决方案1】:

我知道你说这是一项要求,但这些要求是不可能的。首先,没有回调或方法来检查或观察输入法的可见性。人们会提出一些黑客建议,但它们只是——黑客。你不应该依赖它们。

其次,至于您的焦点遍历,幸运的是,Android 内置了对这类事情的很好的支持。查看 nextFocusDown 和 TextView/EditText 上的类似属性。在大多数情况下,您甚至不必指定这些,因为 Android 非常擅长为您找出正确的顺序。如果需要以编程方式进行,可以使用requestFocus() 方法:

editText.requestFocus(View.FOCUS_DOWN);

或者您可以使用FOCUS_UP 转到上一个视图。

编辑:此外,您可以使用属性 inputType="text|textNoSuggestions" 来摆脱大多数输入法上的建议栏(尽管它们不需要尊重它,而且很多都不需要)。

【讨论】:

  • 感谢哥们指导.. :)
猜你喜欢
  • 2011-08-01
  • 2014-02-13
  • 2015-03-14
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
相关资源
最近更新 更多