我想制作一个具有四个按钮(开始,停止1,停止2,结束)和显示指示器的原型。 按下开始时,应用程序应该启动,并且3秒后指示器应开始以5秒的间隔差随机显示颜色(红色和蓝色)。 每当出现这些颜色中的任何一种时,计时器也应从零开始。 我需要这些颜色随机更改10次。 时间应该在按stop1或stop2时停止。 我需要颜色显示和按下停止按钮(1或2)之间的时间差。 时差应保存在.txt文件中。 我已经编写了此代码,但是无法根据我的要求使指示器和计时器正常工作。 在这方面请帮助我。
公共类MainActivity扩展了AppCompatActivity {//最终字符串sdpath = ExternalStorageDirectory()。getAbsolutePath(); TextView计时器,timer1; EditText Participant_No; 参加者 按钮开始,停止1,停止2,结束,闪烁; long MillisecondTime,StartTime,TimeBuff,UpdateTime = 0L; 处理程序处理程序; int Seconds,分钟,MilliSeconds; 字符串s; FileOutputStream fos = null;
public Runnable runnable = new Runnable() {
public void run() {
MillisecondTime = SystemClock.uptimeMillis() - StartTime;
UpdateTime = TimeBuff + MillisecondTime;
Seconds = (int) (UpdateTime / 1000);
Minutes = Seconds / 60;
Seconds = Seconds % 60;
MilliSeconds = (int) (UpdateTime % 1000);
timer.setText("" + Minutes + ":"
+ String.format("%02d", Seconds) + ":"
+ String.format("%03d", MilliSeconds));
handler.postDelayed(this, 0);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
handler = new Handler();
start = (Button) findViewById(R.id.button);
stop1 = (Button) findViewById(R.id.button2);
stop2 = (Button) findViewById(R.id.button3);
end = (Button) findViewById(R.id.button4);
timer = (TextView) findViewById(View);
timer1 = (TextView) findViewById(View2);
Participant_No = (EditText) findViewById(R.id.editText);
blink = (Button) findViewById(R.id.button5);
stop1.setEnabled(false);
stop2.setEnabled(false);
end.setEnabled(true);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
s = "";
StartTime = SystemClock.uptimeMillis();
handler.postDelayed(runnable, 0);
stop1.setEnabled(true);
stop2.setEnabled(true);
blinktxt();
}
});
stop1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
s = s + "1," + Text().toString() + "n";
timer1.Text().toString());
start.setEnabled(true);
stop1.setEnabled(true);
stop2.setEnabled(true);
}
});
stop2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
s = s + "2," + Text().toString() + "n";
timer1.Text().toString());
start.setEnabled(true);
stop1.setEnabled(true);
stop2.setEnabled(true);
}
});
end.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
savefile();
}
});
}
public void savefile()
{
try {
participant = Integer.valueOf(Text().toString());
File folder = ExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File myfile = new File(folder, "CRT" + participant + ".txt");
fos = new FileOutputStream(myfile, true);
fos.Bytes());
fos.close();
Toast.makeText(getApplicationContext(), "the file is saved in " + AbsolutePath(), Toast.LENGTH_LONG).show();
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
}
@SuppressLint("WrongConstant")
public void blinktxt(){
ObjectAnimator animator = ObjectAnimator.ofInt(blink, "backgroundColor", Color.WHITE,Color.BLUE,Color.WHITE,Color.RED);
animator.setDuration(600);
animator.setEvaluator(new ArgbEvaluator());
animator.setRepeatMode(Animation.REVERSE);
animator.setRepeatCount(10);
animator.start();
}
}`
本文发布于:2024-02-04 00:03:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170698131851932.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |