问题,假设有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); } } }在这个例子中,当你点击按钮时,它将检查哪个编辑框的输入类型是文本或电话号码。如果是文本,则将它们的输入类型更改为数字和电话号码。如果不是,将它们的输入类型更改为文本和电话号码。
解决 无用评论 打赏 举报