TextUtils.isEmpty(regUserOtherCity.getText().toString()) 在按下



我有一个默认值为"其他城市"的城市微调器。如果用户找不到他的城市,则当他选择"其他城市"时,将显示文本输入(你的城市(。当用户在那里输入他的城市名称并单击按钮注册时,getText((.toString(( 不会返回该值。而且,即使我编写了验证代码,该字段也为空时,它不起作用。

Log.i("cities[0]", "("+cities[0]+")");
Log.i("regOtherCity", "("+(regUserOtherCity.getText().toString())+")");
if (userCity.equals(cities[0]) && TextUtils.isEmpty(regUserOtherCity.getText().toString()) )
{
           error = true;
            Log.i("checkerror", "("+cities[0]+")");
            regUserOtherCity.setError("Enter Your City");
            regUserOtherCity.requestFocus();
        }
        else if (userCity.equals(cities[0]))
            userCity = regUserOtherCity.getText().toString();
        Log.i("cities[0]", "("+cities[0]+")");
        Log.i("regOtherCity", "("+userCity+")");

我尝试使用 Logcat 进行调试,当用户在文本输入中输入"我的城市"时,输出就在这里。

I/cities[0]: (Other City)
I/regOtherCity: (my city)
I/cities[0]: (Other City)
I/regOtherCity: ()

编辑:-----------------------------在检查时,我发现用户城市返回的值为空。

这是获取用户城市值的代码。由于某些原因,它不起作用。

regCitySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if (String.valueOf(parent.getItemAtPosition(position)).equals(cities[0])) {
                regOtherCityLayout.setVisibility(View.VISIBLE);
               userCity = regUserOtherCity.getText().toString();
                Log.i("onItemSel userCity", "("+userCity+")");
            } else {
                regOtherCityLayout.setVisibility(View.GONE);
                userCity = String.valueOf(parent.getItemAtPosition(position));
            }
        }

您正在userCity onItemSelected中分配 EditText 的值。因此,如果用户选择"其他城市",则会将 EditText 值分配给侦听器中的userCity,而不是 EditText 的值。

只需分配微调器值并使用 if 条件来设置 EditText 的可见性。

userCity = String.valueOf(parent.getItemAtPosition(position));

然后按下按钮时应该可以正常工作。

相关内容

  • 没有找到相关文章

最新更新