【问题标题】:Change the values of EditText and Spinner based on User Input in Android根据Android中的用户输入更改EditText和Spinner的值
【发布时间】:2017-03-05 06:40:16
【问题描述】:

我的 android xml 文件中有一个 editText 和一个 Spinner。我想根据用户输入更改 EditText 和 Spinner 的值。例如,如果用户在 EditText 中输入 7、14、21、28 并在 Spinner 中选择 Days,我希望这些值分别自动更改为 1、2、3、4 周。这同样适用于可能的组合。

  1. 24 小时 - 1 天
  2. 7,14,21,28 天 - 1,2,3,4 周
  3. 4,8,12,16,20,24,28 周 - 1,2,3,4,5,6,7 个月

请在下方找到 EditText 和微调器的代码 sn-ps。

编辑文本:

<android.support.design.widget.TextInputEditText
                android:id="@+id/frequencyDaysEditText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/frequencyTime"
                android:inputType="number" />

微调器:

<Spinner
            android:id="@+id/frequencySpinner"
            android:layout_width="0dp"
            android:layout_gravity="center"
            android:layout_height="wrap_content"
            android:layout_weight="0.2"
            android:entries="@array/frequencyArray" />

Frequency 数组的值:{Hours, Days,Weeks and months}。

注意:我已将 EditText 的范围限制为 1-30。另外,我希望在用户完成选择值时发生这种情况,而不是等到用户点击提交按钮。

我想用 Java 编写一个验证函数,该函数将执行上述功能。请提供任何帮助以提供答案。

【问题讨论】:

    标签: java android validation android-edittext spinner


    【解决方案1】:
    EditText edittext = (EditText) findViewById(R.id.frequencyDaysEditText);
    Spinner spinner = (Spinner) findViewById(R.id.frequencySpinner);
    
    edittext.addTextChangedListener(new TextWatcher() {
    
        @Override
        public void afterTextChanged(Editable s) {}
    
        @Override    
        public void beforeTextChanged(CharSequence s, int start,
          int count, int after) {
        }
    
        @Override    
        public void onTextChanged(CharSequence s, int start,
          int before, int count) {
    
            if(s.length() != 0)
            {
                String name= null;
                if(spinner != null && spinner .getSelectedItem() !=null
                {
                    name = (String)spinner.getSelectedItem();
    
                      //Do what you want to do here
    
                } else  { 
    
                }
            }
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      相关资源
      最近更新 更多