[英]Close showOptionDialog after 5 seconds if not button is pressed in java
[英]Calling a function every 1.5 seconds after a button is pressed
我現在創建的函數每次單擊 android 應用程序中的按鈕並在 TextView 中顯示結果時,都會為我提供一個介於 0.8 和 1.2 之間的隨機數。 但是,我希望此功能每 1.5 秒不斷給我一個新數字,而不必連續單擊按鈕以獲得新結果。 我該怎么做呢?
下面顯示了我想每 1.5 秒調用一次的函數。
public void generate(View view) {
double min = 0.8;
double max = 1.2;
Random rand = new Random();
double number = rand.nextDouble()* max;
TextView myText = (TextView)findViewById(R.id.textView_RanNum);
String myString = String.valueOf(number);
myText.setText(myString);
}
所有幫助將不勝感激。
您可以使用處理程序/可運行:
public class MainActivity extends AppCompatActivity {
Handler handler;
Button buttonStart, buttonStop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler = new Handler();
buttonStart = findViewById(R.id.button);
buttonStop = findViewById(R.id.button2);
buttonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
runnable.run();
}
});
buttonStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.removeCallbacks(runnable);
}
});
}
public Runnable runnable = new Runnable() {
public void run() {
generate();
handler.postDelayed(runnable, 1500); // 1500 miliseconds
}};
public void generate() {
double min = 0.8;
double max = 1.2;
double number;
Random rand = new Random();
TextView myText = findViewById(R.id.textView_RanNum);
number = rand.nextDouble() * max;
String myString = String.valueOf(number);
myText.setText(myString);
}
}
您可以使用 Android 的 Handler 類來做到這一點。
public class MainActivity extends AppCompatActivity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler myHand = new Handler();
myHand.postDelayed(new Runnable() {
@Override
public void run() {
generate();
}
}, 1500);
}
});
}
public void generate() {
double min = 0.8;
double max = 1.2;
Random rand = new Random();
double number = rand.nextDouble() * max;
TextView myText = (TextView) findViewById(R.id.textView_RanNum);
String myString = String.valueOf(number);
myText.setText(myString);
}
}
在此處閱讀有關處理程序的更多信息: https : //developer.android.com/reference/android/os/Handler
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.