0

アクティビティ1からアクティビティ2にcountdownTimer値を渡して、アクティビティ1から取得した値からアクティビティ2のカウントダウンタイマーを開始しようとしていますが、の開始点を作成する方法がわかりませんでした。アクティビティ2のタイマーを変数として使用します。これがアクティビティ1のコードです。

    new CountDownTimer(20000, 1000) {
        public void onTick(long millisUntilFinished) {
            tv.setText("seconds remaining: " + millisUntilFinished / 1000);

        }
        public void onFinish() {
            tv.setText("done!");
        }
     }.start();

    next.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent i = new Intent(MainActivity.this, Page2.class);
            i.putExtra("timervalue", tv.getText());
            startActivity(i);
        }

    });

これがアクティビティ2のコードです

    Bundle bundle = getIntent().getExtras();  
    long value = Long.parseLong(bundle.getString("timervalue"));
    new CountDownTimer(value, 1000) {
        public void onTick(long millisUntilFinished) {
            tv.setText("seconds remaining: " + millisUntilFinished / 1000);
        }
        public void onFinish() {
            tv.setText("done!");
        }
     }.start();  

また、バンドルの代わりにIntetを使用して、このようなアクティビティ2を作成しようとしました

    Intent results = this.getIntent();
    String s = results.getExtras().getString("timervalue");
    long value = Long.parseLong(s);

    new CountDownTimer(value, 1000) {
        public void onTick(long millisUntilFinished) {
            tv.setText("seconds remaining: " + millisUntilFinished / 1000);
        }
        public void onFinish() {
            tv.setText("done!");
        }
     }.start();  

putExtraとgetExtraのときにエラーが発生したと思いますが、よくわかりません。私は本当にJavaの初心者です。だから助けてください。

4

2 に答える 2

0

追加のtimervalueは文字列です(「残り秒数:」+残り秒数)。この文字列をlongにキャストすることはできません。次のようなことを試すことができます:

String timeValueStr = tv.getText().toString().replace("seconds remaining: ", "");
long value = Long.parseLong(timeValueStr);
于 2013-02-05T08:44:58.173 に答える
0

ここでの問題はString、エクストラをに入れて、もう一方の端からActivity1をフェッチしようとしていることです。値をaとして渡すことは問題ありませんが、その場合はのように解析する必要があります。したがって、コードは次のようになります。LongBundleStringLongActivity2

Bundle bundle = getIntent().getExtras();  
    long value = Long.parseLong(bundle.getString("timervalue"));

お役に立てれば。

于 2013-02-05T08:46:21.537 に答える