0

実行可能なオブジェクトを含む関数を複数回呼び出そうとしています。誰が私が間違っているのか教えてもらえますか?

        handler = new Handler();

        sButton.setOnClickListener(new View.OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                rounds = new Integer(et.getText().toString());
            //  handler.removeCallbacksAndMessages(null);
                for (int j = 0; j <= rounds; j ++)
                {
                    f();
                }
            }
        });
    }

    public void f()
    {
        r = new Runnable() 
        {
            @Override
            public void run() 
            {
                 mp = MediaPlayer.create(Box.this, R.drawable.sound1);
                 mp.setLooping(false);
                 mp.setVolume(1.0f, 1.0f);
                 mp.start();
                 handler.postDelayed(this, 3000);
            }
        };
        handler.postDelayed(r, 4000);
        mp.stop();

前もって感謝します

4

1 に答える 1

1

これをチェックしてください-

 Handler handler;
    sButton.setOnClickListener(new View.OnClickListener() 
            {

                @Override
                public void onClick(View v) 
                {
                    rounds = new Integer(et.getText().toString());
                    for (int j = 0; j <= rounds; j ++)
                    {
                        f();
                    }
                }
            });

    public void f()
    {
          r = new Runnable() 
            {
                @Override
                public void run() 
                {

                   handler = new Handler() {
                   public void handleMessage(Message msg) {
                   mp = MediaPlayer.create(Box.this, R.drawable.sound1);
                   mp.setLooping(false);
                   mp.setVolume(1.0f, 1.0f);
                   mp.start(); 
                   handler.sendEmptyMessageDelayed(1,3000);//3 sec
                   msg.what = 2;//removing first executed handler this is u missing.
                    };
                 };
                handler.sendEmptyMessageDelayed(1,4000);//4sec
                }
           }
    }
于 2013-04-23T12:54:39.460 に答える