问题
I want a new activity to start when a new activity is reached, so far i've been having some trouble. This is what i have so far. I hope you guys understand what i am trying to do. If there is an easier way that works please tell me. perhaps i should put this in a thread?
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);
}
}
My whole code:
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);
}
}
}
}
回答1:
Try implementing Chronometer.OnChronometerTickListener
on your Activity
and put the code from chronometer()
in there (or the relevant part).
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
}
}
}
来源:https://stackoverflow.com/questions/9153286/chronometer-start-activity-when-time-is-reached