wowo_小白 2014-06-28 05:20 采纳率: 0%
浏览 4432

[android]我想知道是否能够设置软键盘输入切换到下一个EditText动态改变输入类型?

问题,假设有2个EditText,第一个inputType=text,第二个也是text的。我想这么做,在第一个软键盘弹出后,我换了输入类型是numer,下一步切换到第二个Edittext,软键盘会自动改变类型为text的键盘界面,我希望能通过什么方法,保证软键盘不会自动切换类型。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 05:28
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Android中,你可以使用setInputType()方法来更改EditText的输入类型。但是,这个方法只能改变当前编辑框的输入类型,而不能影响其他编辑框的输入类型。

    如果你想让两个编辑框都保持相同的输入类型(例如,都是文本),你可能需要在每个编辑框上都添加一个监听器,当其中一个编辑框的焦点变化时,调用一个函数来更改另一个编辑框的输入类型。

    以下是一个简单的示例:

    public class MainActivity extends AppCompatActivity {
    
        EditText editText1;
        EditText editText2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            editText1 = findViewById(R.id.editText1);
            editText2 = findViewById(R.id.editText2);
    
            editText1.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSONAL_MESSAGE);
            editText2.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSONAL_MESSAGE);
        }
    
        public void switchToNumberKeyboard(View view) {
            if (editText1.getInputType() == InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSONAL_MESSAGE) {
                editText1.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PHONE);
                editText2.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSONAL_MESSAGE);
            } else {
                editText1.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PHONE);
                editText2.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSONAL_MESSAGE);
            }
        }
    }
    

    在这个例子中,当你点击按钮时,它将检查哪个编辑框的输入类型是文本或电话号码。如果是文本,则将它们的输入类型更改为数字和电话号码。如果不是,将它们的输入类型更改为文本和电话号码。

    评论

报告相同问题?