写了个测速软件,有什么不足的地方还望指教,我是个菜鸟
package com.example.typespeed;
import java.util.Random;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity{
public static int time = 60;
private TextView textShow;
private TextView timeShow;
private int scoreChar = 0;
private EditText inPut;
char[] c = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
'r','s','t','u','v','w','x','y','z'};
private Random random = new Random();
private int i = 0;
private Handler handler = new Handler(){
public void handleMessage(Message msg) {
int t = msg.what;
timeShow.setText(t+"");
if (t==0) {
score();
}
}
};
private Runnable runnable = new Runnable() {
public void run() {
time--;
if (time>=0) {
handler.postDelayed(runnable, 1000);
}else {
return;
}
Message message = new Message();
message.what = time;
handler.sendMessage(message);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textShow = (TextView)this.findViewById(R.id.textShow);
inPut = (EditText)this.findViewById(R.id.edText);
timeShow = (TextView)findViewById(R.id.timeShow);
timeShow.setText(60+"");
i = random.nextInt(25);
textShow.setText(c[i]+"");
}
//计算得分
public void score(){
double scores = scoreChar/60;
Toast.makeText(this, "您的得分是:"+scoreChar, Toast.LENGTH_LONG).show();
}
int ac = 0;
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
time = 60;
inPut.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String tString = textShow.getText()+"";
if (/*tString.equals(inPut.getText()+"")*/
inPut.getText().length()>=1) {
i = random.nextInt(25);
textShow.setText(c[i]+"");
if (tString.equals(inPut.getText()+"")) {
scoreChar++;
}
inPut.setText("");
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//启动线程计时
if (ac == 0) {
handler.post(runnable);
time = 60;
Log.i("jinchengyunxing", time+"|");
ac++;
}
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
/*if (inPut.getText()!=null) {
inPut.setText("");
}*/
}
});
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.v("ddd", "onPause");
time = -1;
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.v("ddd", "onStop");
time = -1;
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}