0

スイッチウィジェットでサウンドをアクティブにしようとしているので、オフにすることもできます。数秒後に自動的にシャットダウンしたいのですが。s.performClick(); 私が抱えている問題を解決する方法を知っている人は誰でもアプリがクラッシュしますが、すべてが機能 しますか?

ここにフラグメントの完全なコードがあります。

public static class Therapy extends Fragment implements CompoundButton.OnCheckedChangeListener{
    MediaPlayer player = null;
    Switch s;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
        View v = inflater.inflate(R.layout.therapy, container, false);           
        Switch s = (Switch)v.findViewById(R.id.switch1);
        s.setOnCheckedChangeListener(this);

        return v;   
    }

    class MyTimerTask extends TimerTask {
        public void run() {
            s.performClick();
        }

    }

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {                    
                player = MediaPlayer.create(getActivity(), R.raw.bird1);
                player.setLooping(true);
                player.start();

                MyTimerTask myTask = new MyTimerTask();
                Timer myTimer = new Timer();
                myTimer.schedule(myTask, 1000);
            } else {
                player.stop();
                player.release();
            }
        }
4

1 に答える 1

0

私はあなたのコードをビルドして実行しようとしなかったので、ここで推測しますが、

s.performClick()は UI アクセス操作であり、Timer. UI にアクセスするもので Android が文句を言わないようにするために、Timer呼び出し(Runnable を渡す)を検討することをお勧めします。Handler.postまたは、必要に応じて、完全にHandler.postDelayed.

于 2013-03-08T16:26:56.493 に答える