0
我无法计算平均打字速率(每分钟字符数)。 有时数字太小,有时数字太大。 当我在模拟器上运行它时,数字非常小; 当我在手机上运行它时,数字会非常大。 请帮忙。我无法计算平均打字速度(字符每分钟)
package com.example.typeit;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
TextView test, min;
EditText input;
long startTime;
double sTime, tTime;
boolean isStarted;
//ProgressBar progressBar;
int count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = (EditText) findViewById(R.id.input);
min = (TextView) findViewById(R.id.min);
//progressBar = (ProgressBar) findViewById(R.id.progress);
input.setOnKeyListener(keyListener);
isStarted = true;
count = 0;
}
View.OnKeyListener keyListener = new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == event.ACTION_DOWN) {
if (isStarted) {
sTime = new Date().getTime();
isStarted = false;
return false;
}
//if(keyCode == event.KEYCODE_SHIFT_LEFT) return false;
if (Character.isUpperCase(input.getText().charAt(count))) {
if (input.getText().toString().charAt(count) != keyCode + 36) {
min.setText("");
} else {
min.setText("");
}
} else if (Character.isLowerCase(input.getText().charAt(count))) {
if (input.getText().toString().charAt(count) != keyCode + 68) {
min.setText("");
} else {
min.setText("");
}
}
if (keyCode == KeyEvent.KEYCODE_DEL) count--;
else count++;
tTime = (new Date().getTime() - sTime)/1000/60;
int result = (int) (count/tTime);
if (result < 0) result = 0;
// progressBar.setProgress(result);
if (count == input.getText().toString().length()) {
input.setText("");
min.setText("" + result);
}
}
return false;
}
};
}