【问题标题】:How to make Spinner error like edit text in android?如何使 Spinner 错误,如在 android 中编辑文本?
【发布时间】:2016-10-19 13:20:11
【问题描述】:

我有一个微调器,其中有国家/地区列表,如果用户没有从列表中选择国家/地区名称,我想在微调器中显示错误,例如编辑文本。如何执行此操作?

微调器代码:

    /*Country Spinner*/
    m_countrySpinner = (Spinner) findViewById(R.id.country_spinner);
    ArrayAdapter<CCountryStorage> adapter = new ArrayAdapter<>(getApplicationContext(), R.layout.country_spinner, CCountryListStorage.item);
    m_countrySpinner.setAdapter(adapter);
    m_countrySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            CCountryStorage operatorName = CCountryListStorage.item[position];
            m_selectedCountryCode = operatorName.code;
            Log.e(TAG, "Operator code:-" + m_selectedCountryCode);
            mSpinnerItem = m_countrySpinner.getSelectedItem().toString();
            if (position > 0) {
                checkForEmptyField();
            } else {

                m_RegisterButton.setEnabled(false);
                m_RegisterButton.setBackgroundColor(Color.rgb(192, 192, 192));
            }

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

【问题讨论】:

  • 错误是什么
  • 你的问题解决了吗?

标签: android android-edittext spinner


【解决方案1】:

Spinner 类将在您使用 getSelectedView() 时返回 textview。所以你可以间接使用setError()

 ((TextView)spinner.getSelectedView()).setError("Your Error msg Here");

为了更好地理解:

getSelectedView()

View :当前选中项对应的view,如果没有选中则为null。

它会返回TextView。所以我们可以像我提到的那样设置错误 以上。

更多详情请访问文档:https://developer.android.com/reference/android/widget/AbsSpinner.html

【讨论】:

    【解决方案2】:

    她的Creating a setError() for the Spinner 有一些解决方案。 只需将以下代码放入您的验证函数中:

    TextView errorText = (TextView)mySpinner.getSelectedView();
    errorText.setError("");
    errorText.setTextColor(Color.RED);//just to highlight that this is an error
    errorText.setText("my actual error text");//changes the selected item text to this
    

    但是,在进行验证时,请确保 Spinner 适配器中至少有一个值。如果没有,就像一个等待填充的空适配器,让你的适配器得到一个空字符串:

    ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, new String[]{""});
    mySpinner.setAdapter(adapter);
    

    干杯!

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多