Android 达到时间后,计时器开始活动
我希望在达到新活动时开始新活动,到目前为止,我遇到了一些麻烦。这就是我目前所拥有的。我希望你们明白我想做什么。如果有更简单的方法,请告诉我。也许我应该把这个放在一根线里Android 达到时间后,计时器开始活动,android,asynchronous,android-activity,android-intent,chronometer,Android,Asynchronous,Android Activity,Android Intent,Chronometer,我希望在达到新活动时开始新活动,到目前为止,我遇到了一些麻烦。这就是我目前所拥有的。我希望你们明白我想做什么。如果有更简单的方法,请告诉我。也许我应该把这个放在一根线里 Chrono = (Chronometer) findViewById(R.id.chronometer1); Chrono.start(); while (!(Chrono.equals(chronoText))) { chronoText = Chrono.getTe
Chrono = (Chronometer) findViewById(R.id.chronometer1);
Chrono.start();
while (!(Chrono.equals(chronoText))) {
chronoText = Chrono.getText().toString();
if (chronoText.equals("00:30")) {
Intent intent = new Intent(getApplicationContext(),
Hw3Activity.class);
startActivity(intent);
}
}
我的全部代码:
public class Next extends Activity {
Button returned;
Button click;
Button search;
EditText clicksearch;
TextView counted;
int counter;
int answer;
Chronometer Chrono;
CharSequence chronoText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screentwo);
// waiter = new Waiter(60 * 1000); // 1 min
// waiter.start();
Chrono = (Chronometer) findViewById(R.id.chronometer1);
Chrono.start();
Log.d("Ebz", "uhh");
returned = (Button) findViewById(R.id.returned);
click = (Button) findViewById(R.id.click);
search = (Button) findViewById(R.id.search);
clicksearch = (EditText) findViewById(R.id.clicksearch);
counted = (TextView) findViewById(R.id.counted);
chronometer(); // its called here
returned.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
counter = 0;
Intent intent = new Intent(getBaseContext(), Hw3Activity.class);
answer = intent.getIntExtra("meaningOfLife", -1);
Intent i = getIntent();
i.putExtra("returnInt", answer);
setResult(RESULT_OK, i);
startActivity(intent);
}
});
click.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
counter++;
counted.setText(String.valueOf(counter));
Chrono.setBase(SystemClock.elapsedRealtime());
}
});
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, clicksearch.getText()
.toString());
startActivity(intent);
}
});
clicksearch.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
}
public void chronometer() {
while (!(Chrono.equals(chronoText))) {
chronoText = Chrono.getText();
Log.d("Ebz", "makes it to chronometer");
counted.setText(String.valueOf(chronoText));
if (chronoText.equals("00:10")) {
Intent intent = new Intent(getApplicationContext(),
Hw3Activity.class);
startActivity(intent);
}
}
}
}
尝试在您的
活动中实现计时器。OnChronometerTickListener
,并将计时器()
中的代码放入其中(或相关部分)
您遇到的具体问题是什么?30秒后不会调用该活动。我想在30秒后开始一个新的活动,但它什么也做不了我去掉了toString()并改变了类型,但我仍然没有得到我想要的结果。计时器的显示是否真的像它应该的那样在屏幕上计数?是的,它计数并显示所有内容。我应该发布我的全部代码吗?这种方法看起来确实比我之前的方法更干净,我今晚晚些时候会尝试,如果它有效,我会接受答案,谢谢你,我很快就会回来。酷-很高兴能帮上忙。祝你好运。为什么要在Chrono.setOnChronometerTickListener()
中将“this”作为参数传递?我对android很陌生。当Java类实现接口时,它必须实现接口的各种方法。在这种情况下,类被称为Next
(它本身扩展了活动
),接口是Chronometer.OnChronometerTickListener
。该接口定义了一个名为onChronometerTick
的方法,该方法是每次计时器“滴答”时调用的方法。这是通过Next
实现的,正如您在上面的代码中所看到的那样….在下面的注释中继续….为了让计时器
知道如何找到该方法,我们调用setOnChronometerTickListener
方法,并将实现onChronometerTick
方法的类的实例传递给它。在本例中,实例是活动本身,Java关键字this
指调用setOnChronomertickListener
的任何对象的当前实例。这不是特定于Android的,这是一个Java的东西-谷歌的“Java这个关键字”和阅读它-你会使用它很多。
public class Next extends Activity
implements Chronometer.OnChronometerTickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Chrono = (Chronometer) findViewById(R.id.chronometer1);
Chrono.setOnChronometerTickListener(this);
Chrono.start();
...
}
public void onChronometerTick(Chronometer chronometer) {
if ("00:10".equals(chronometer.getText()) {
// Create Intent and start the new Activity here
}
}
}