2017-10-10 20 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); 
       } 



      } 
     } 
    });