2017-10-10 49 views
-1

我想做一个应用程序来计算平均值,我有名称,calif1,cal2,cal3,舞台的字段。 但是没有必要有任何按钮帮助发送操作并返回prom中的某些内容,所以我想查看是否有可能添加calX的三个变量,而不需要按钮,并且此结果是存储在变量舞台上,所以在文本视图中打印(不断添加,刷新或自动求和)。 注意:calif1,cal2,cal3是编辑文本,而prom是文本视图。 P.D:我看到使用Action Go ime充当按钮的可能性,但我不知道它是否可行。三个变量(编辑文本)的总和没有按钮打印在第四个变量(文本视图)

<TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <EditText 
      android:id="@+id/editText7" 
      android:layout_width="150dp" 
      android:layout_height="35dp" 
      android:ems="10" 
      android:inputType="textPersonName" 
      android:textSize="14sp" /> 

     <EditText 
      android:id="@+id/editText8" 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:ems="10" 
      android:inputType="number" 
      android:textSize="14sp" 
      android:maxLength="2" 
      android:digits="1234567890" 
      android:singleLine="true"/> 

     <EditText 
      android:id="@+id/editText9" 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:ems="10" 
      android:inputType="number" 
      android:textSize="14sp" 
      android:maxLength="2" 
      android:digits="1234567890" 
      android:singleLine="true"/> 

     <EditText 
      android:id="@+id/editText10" 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:ems="10" 
      android:inputType="number" 
      android:textSize="14sp" 
      android:maxLength="2" 
      android:digits="1234567890" 
      android:singleLine="true" 
      android:imeOptions="actionGo"/> 

     <TextView 
      android:id="@+id/textView11" 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:ems="10" 
      android:text="TextView" 
      android:textSize="14sp" 
      android:maxLength="3" 
      android:singleLine="true"/> 

    </TableRow> 
+0

我想写一个方法,但我不知道编辑文本中输入的值是否必须是按顺序或随机?? – Xenolion

回答

0

您可以使用textChangedListener来获得一个回调时有在EDITTEXT字段的值,并计算平均值。

编号:TextWatcher Documentation

采用Android:imeoptions也可以达到同样的效果。

0

你可以利用textChangeListerner来获得你所拥有的三个EditText。我已经包括一个与calif1的例子

calif1.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) { 
       int a = Integer.parseInt(calif.getText().toString())+      
       Integer.parseInt(cal1.getText().toString()) + 
       Integer.parseInt(cal2.getText().toString()) 
       prom.setText(""+a); 
       } 



      } 
     } 
    });