每次点击后检查EditText值

时间:2019-04-25 17:08:59

标签: java android xml

我希望我的活动每次用户执行操作(增大或减小文本字段中的值)时都检查TextView / EditText中的String(整数)的值

Activity从两个不同的Activite调用,Activity A的起始值为20,Activity B的起始值为10。

现在,我希望用户更正此值(如果他愿意),并且需要检查,用户(A)的值不会低于20,而用户(B)的值不会低于20 10,另一方面,当用户增加此数字时,我需要打印警告文本+信息文本,例如: W:“只有20(A)/ 10(B)的空间” 我:“增加会带给您...”,在这里,我将在字段中输入给定数字的一些值

XML:

<RelativeLayout
    android:layout_centerHorizontal="true"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:padding="@dimen/big_padding">

    <Button
        android:id="@id/btn_minus"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="-" />


    <Button
        android:id="@+id/btn_plus"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/number"
        android:layout_width="wrap_content"
        android:text="+" />


    <EditText
        android:id="@+id/number"
        android:inputType="number"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/btn_minus"
        android:layout_width="100dp" />

    <TextView
        android:id="@+id/info"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">

    <TextView
        android:id="@+id/warning"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">

</RelativeLayout>

这里是我的JavaCode

    EditText num;
    Button btn_plus, btn_minus;
    (..)
    if(id.equals("A")) {
          // Activity A, limit = 20
          num.setText("20");
          btn_plus.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  int t = Integer.parseInt(counterTxt.getText().toString());  
                  num.setText(String.valueOf(t+1)); 

              }
          }
          //same for btn_minus
    } else {
        // Activity B, limit=10
        num.setText("10");
    }

绝对有效的方法:if(t <20){...}-好的。 但是,在每次“ onClick”之后,此处的if / else值在代码方面似乎有点长。 有没有更优雅的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可能正在寻找与此类似的东西...此代码将使您可以增加一个值,并观察每次单击后该值的变化。

    int number = 15;
    Button plus, minus;
    EditText value;

    plus.setOnClickListener(new View.onClickListener(){
        number++;

        if(number > max)
            number = max;

        value.setText(number);
    });


    minus.setOnClickListener(new View.onClickListener(){
        number--;

        if(number < min)
        number = min;

        value.setText(number);
    });