设置Spinner适配器后,EditText输入类型改变。

3

我已将spinner设置为ArrayAdapter作为字符串列表。

                        // Creating adapter for spinner
                        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(LoginActivity.this, R.layout.row_spinner, countryCodeList);
                        dataAdapter.setDropDownViewResource(R.layout.row_spinner);

                        // attaching data adapter to spinner
                        spinnerCountryCode.setAdapter(dataAdapter);

在这个设置中,spinner适配器成功了,但是在LoginActivity中,我还有其他的EditText控件,并将其InputType设置为数字。
我的问题是,在spinner适配器设置后,点击EditText后首先打开数字键盘,然后立即打开系统文本键盘。
我也已经将EditText的InputType设置为数字。
android:inputType="number" 

而 manifest 文件中设置 windowSoftInputMode 为

android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

请给我提供一些解决方案。 谢谢!

请清楚地解释您的问题以及您想要做什么。 - Sachin Rajput
@Thunder 我的问题是当点击EditText时,打开数字键盘。 - Dinesh
好的,那么在设置了android:inputType="number"之后,出现了什么问题,请解释一下,这样我才能帮助你。 - Sachin Rajput
在设置了android:inputType="number"之后,应该打开数字键盘,但实际上我在同一个活动中设置了spinner适配器,所以如果我点击EditText,数字键盘不会打开。如果我注释掉spinnerCountryCode.setAdapter(dataAdapter);,那么它就可以正常工作。 - Dinesh
1
请检查我的答案是否解决了你的问题。 - Sachin Rajput
所以您有一个 EditText(输入类型为数字)和一个 Spinner(其中包含项目列表)。很快打开屏幕键盘出现,您希望避免它,因为它会隐藏您的 Spinner。这是您的问题陈述吗? - Yashaswi N P
1个回答

3

您的R.layout.row_spinner存在问题,请尝试将R.layout.row_spinner替换为android.R.layout.simple_spinner_item,然后运行一次。

   ArrayList<String> values;

 values = new ArrayList<>();
        values.add("value1");
        values.add("value1");
        values.add("value1");
        values.add("value1");

        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, values);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);

        // attaching data adapter to spinner
        spinner.setAdapter(dataAdapter);

enter image description here


谢谢你的努力,@Thunder,但我已经尝试过了,对我没有用。 - Dinesh
尝试在您的Spinner中设置android:focusable=false。 - Sachin Rajput
私有 void setSinner() { // 为下拉列表创建适配器// countryCodeList 填充字符串数组 ArrayAdapter dataAdapter = new ArrayAdapter(LoginActivity.this, R.layout.row_spinner, countryCodeList); dataAdapter.setDropDownViewResource(R.layout.row_spinner); // 将数据适配器附加到下拉列表 spinnerCountryCode.setAdapter(dataAdapter); spinnerCountryCode.clearFocus();} - Dinesh
我正在检查我的系统,请给我5分钟。 - Sachin Rajput
1
感谢您的努力,@Thunder。是的,我的R.layout.row_spinner文件出了问题。如果我改成android.R.layout.simple_spinner_item,那么就可以正常工作了。 - Dinesh
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接