我想制作一款应用,当您按下按钮时,已开始倒计时。 当倒计时到达终点时,它看起来你点击按钮有多变,如果它超过10它什么都不做,但如果它在10以下它必须激活一个动作,就像显示一个选择。
我也想制作一个重置按钮。 当您点击重置按钮时,倒计时设置为10秒,当您再次点击倒计时按钮时,它会重新开始。
StartButton --->
|click = counter running|
|click after the first one = counting the clicks|
|if the clicks is above the 10 = it will happen nothing (break;)|
|if the clicks is under the 10 = it will show a pickture|
ResetButton --->
|resets the countdown|
我希望我把它好。 我想使用“开关和案例”系统。
这是我的意思:
int counter = 0;
ImageButton finishhimbutton;
ImageButton resetbutton;
ImageView jb1;
ImageView jb2;
ImageView jb3;
ImageView jb4;
ImageView jb5;
ImageView jb6;
TextView txtCount;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView)findViewById(R.id.mcounter);
txtCount = (TextView)findViewById(R.id.timer);
txtCount.setText(String.valueOf(counter));
jb1 = (ImageView) findViewById(R.id.JB1);
jb2 = (ImageView) findViewById(R.id.JB2);
jb3 = (ImageView) findViewById(R.id.JB3);
jb4 = (ImageView) findViewById(R.id.JB4);
jb5 = (ImageView) findViewById(R.id.JB5);
jb6 = (ImageView) findViewById(R.id.JB6);
finishhimbutton = (ImageButton) findViewById(R.id.finishhim);
resetbutton = (ImageButton) findViewById(R.id.reserbutton);
finishhimbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
counter++;
txtCount.setText(String.valueOf(counter));
switch(counter){
case 10:
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.VISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 20:
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.VISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 30:
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.VISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 40:
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.VISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 49:
Toast.makeText(MainActivity.this, "Finish Him!", Toast.LENGTH_SHORT).show();
break;
case 50:
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.VISIBLE);
break;
case 51:
jb1.setVisibility(ImageView.VISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
counter = 0;
txtCount.setText(String.valueOf(counter));
break;
default:
break;
}
}
}
);
resetbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
counter = 0;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.VISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
谢谢!
答案 0 :(得分:0)
您需要一个全局变量处理程序,并在第一次单击时执行此操作:
if (handler == null) {
handler = new Handler();
handler.postDelayed(
new Runnable() {
public void run() {
if (!killed){
//reset clickcount after 10 seconds and whatever should be done
}
}
}, 10000L);
}
如果你想重置只是擦除所有数据。并将被杀死的全局变量设置为true,因此runnable不会执行。
将它添加到那里,注意到你的第一个舔。
@Override
public void onClick(View v) {
counter++;
txtCount.setText(String.valueOf(counter));
// should be fine right here
...
}
答案 1 :(得分:0)
感谢您的回复
我这样做了:
public class MainActivity extends Activity implements OnClickListener{
private Handler timer = new Handler();
int counter = 0;
TextView mTextView;
ImageButton finishhimbutton;
ImageButton resetbutton;
ImageView jb1;
ImageView jb2;
ImageView jb3;
ImageView jb4;
ImageView jb5;
ImageView jb6;
TextView txtCount;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtCount = (TextView)findViewById(R.id.timer);
txtCount.setText(String.valueOf(counter));
jb1 = (ImageView) findViewById(R.id.JB1);
jb2 = (ImageView) findViewById(R.id.JB2);
jb3 = (ImageView) findViewById(R.id.JB3);
jb4 = (ImageView) findViewById(R.id.JB4);
jb5 = (ImageView) findViewById(R.id.JB5);
jb6 = (ImageView) findViewById(R.id.JB6);
finishhimbutton = (ImageButton) findViewById(R.id.finishhim);
resetbutton = (ImageButton) findViewById(R.id.reserbutton);
final Runnable hMyTimeTask = new Runnable() {
public void run() {
counter = 0;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.VISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
}
};
finishhimbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (counter == 1) {
timer = new Handler();
timer.removeCallbacks(hMyTimeTask);
timer.postDelayed(hMyTimeTask, 1000);
}
switch(counter){
case 1:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.VISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 10:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.VISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 20:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.VISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 30:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.VISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 40:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.VISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
break;
case 49:
counter++;
txtCount.setText(String.valueOf(counter));
Toast.makeText(MainActivity.this, "Finish Him!", Toast.LENGTH_SHORT).show();
break;
case 50:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.INVISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.VISIBLE);
break;
case 51:
counter++;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.VISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
counter = 0;
txtCount.setText(String.valueOf(counter));
break;
default:
counter++;
txtCount.setText(String.valueOf(counter));
break;
}
}
}
);
resetbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
counter = 0;
txtCount.setText(String.valueOf(counter));
jb1.setVisibility(ImageView.VISIBLE);
jb2.setVisibility(ImageView.INVISIBLE);
jb3.setVisibility(ImageView.INVISIBLE);
jb4.setVisibility(ImageView.INVISIBLE);
jb5.setVisibility(ImageView.INVISIBLE);
jb6.setVisibility(ImageView.INVISIBLE);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
}
}
感谢您的帮助!