我正在尝试构建一个简单的应用程序,用户需要重新启动计算机按下的按钮。 点击的每个按钮发出声音..所以为了使每个声音,声音正确,我试图在计算机按下的每次点击之间给出一点延迟......
所以我使int []包含计算机点击按钮的方式的顺序(单击按钮1,双击按钮2 ....) 现在我试图按下按钮哈哈 所以我做到了:
private void ClickButtons(int[] sequence) {
Button btcomp1 = (Button) findViewById(R.id.btComp1);
Button btcomp2 = (Button) findViewById(R.id.btComp2);
Button btcomp3 = (Button) findViewById(R.id.btComp3);
Button btcomp4 = (Button) findViewById(R.id.btComp4);
TextView check=(TextView)findViewById(R.id.textViewKq);
Handler handler = new Handler();
for (int i = 0; i < sequence.length; i++)
{
switch (sequence[i]) {
case 1:
btcomp1.performClick();
check.setText("4..");
timedelay();
break;
case 2:
btcomp2.performClick();
check.setText("3..");
timedelay();
break;
case 3:
btcomp3.performClick();
check.setText("2..");
timedelay();
break;
case 4:
btcomp4.performClick();
check.setText("1..");
timedelay();
break;
}
}
}
它没有很好地工作,我甚至认为它们可能是按钮的问题,所以我设置它来改变一些Textview但似乎它只进入一个案例...而唯一的延迟是当我从GameActivity的FirstActivity
我在UserName的FirstActivity just字段中什么也没有...
好吧,我希望你能帮助我们和语法学家&gt;&lt;
这是延迟..我试图做点什么,但所有这一切都是在我从actity 1转到另一个但在主要内容中没有做任何事情时延迟我几秒钟。
private void timedelay() {
try{
Thread.sleep(2500);
}
catch (Exception e){
}
}
答案 0 :(得分:1)
对于这种事情你绝对应该使用"""Converts mi to km."""
print("Welcome to the converter!")
miorkm = input("Km to mi, or mi to km: ").lower
val = input("How many Km or Mi: ")
def converter(inpu2):
"""Converts the value."""
output = 0
if miorkm == "km":
output = int(val) * 0.621
else:
output = int(val) * 1.609
return output
print(converter(miorkm))
制作一个计时器。在回调方法中,单击按钮。您现在使用的方法可能会阻止主线程。这真的很糟糕。
幸运的是,我已经写过android.os.Handler
课了!这是全班:
Timer
尝试理解它。执行此操作后,您可以使用此计时器:
import android.os.Handler;
public class Timer {
private Handler handler;
private boolean paused;
private int interval;
private Runnable task = new Runnable () {
@Override
public void run() {
if (!paused) {
runnable.run ();
Timer.this.handler.postDelayed (this, interval);
}
}
};
private Runnable runnable;
public int getInterval() {
return interval;
}
public void setInterval(int interval) {
this.interval = interval;
}
public void startTimer () {
paused = false;
handler.postDelayed (task, interval);
}
public void stopTimer () {
paused = true;
}
public Timer (Runnable runnable, int interval, boolean started) {
handler = new Handler ();
this.runnable = runnable;
this.interval = interval;
if (started)
startTimer ();
}
}
创建此计时器后,它基本上每秒按一次按钮。并设置final Timer t = new Timer(new Runnable() {
private int i = 1;
Button btcomp1 = (Button) MainActivity.this.findViewById(R.id.btComp1);
Button btcomp2 = (Button) MainActivity.this.findViewById(R.id.btComp2);
Button btcomp3 = (Button) MainActivity.this.findViewById(R.id.btComp3);
Button btcomp4 = (Button) MainActivity.this.findViewById(R.id.btComp4);
TextView check=(TextView)MainActivity.this.findViewById(R.id.textViewKq);
public void run() {
switch (i) {
case 1:
btcomp1.performClick();
check.setText("4..");
break;
case 2:
btcomp2.performClick();
check.setText("3..");
break;
case 3:
btcomp3.performClick();
check.setText("2..");
break;
case 4:
btcomp4.performClick();
check.setText("1..");
t.stopTimer();
break;
}
}
}, 1000, true);
的文字。第四次按下时,计时器停止。
轻松! (如果你有计时器类)