1

サウンドを録音するためのシンプルな Android アプリを作成しています。startRecording() および stopRecording() メソッドがあります。ここで、「Touch to record」という名前のトグルボタンを実装しました。すでに想像できるように、ボタンがチェックされているときは、録音ボタンを押したままにしてサウンドを録音する必要があり、ボタンが「オフ」になっているときは、クリックして開始する必要があります。をクリックして停止します。

これは現在のコードです:

touchToRecord.setOnCheckedChangeListener(new OnCheckedChangeListener(){

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            if (isChecked)
            {
                recBtn.setOnTouchListener(new OnTouchListener(){

                    @Override
                    public boolean onTouch(View v, MotionEvent event) {

                        if (event.getAction() == MotionEvent.ACTION_DOWN)
                        {
                            recBtn.setImageResource(com.whizzappseasyvoicenotepad.R.drawable.record_btn_pressed);
                            chTimer.start();
                            chTimer.setTextColor(Color.GREEN);
                            startRecording();
                        }
                        else if (event.getAction() == MotionEvent.ACTION_UP)
                        {
                            recBtn.setImageResource(com.whizzappseasyvoicenotepad.R.drawable.record_btn);
                            chTimer.stop();
                            stopRecording();
                            nameAlert();
                        }
                        return true;
                    }

                });
            }
            else
            {
                //onClickListener
            }
        }

    });

onClickListener の作成方法がわかりません。私がこのようにしようとすると:

recBtn.setOnClickListener(new OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }

                });

setOnClickListener に下線が引かれ、次のように表示されるため、機能しません。

タイプ View のメソッド setOnClickListener (View.OnClickListener) は、引数 (new DialogInterface.OnClickListener(){}) には適用されません。

また、これを機能させた後、もう1つ。if ステートメントでメソッドが既に実行されているかどうかを確認するにはどうすればよいですか? 私はこのようなことをしたい:

if (startRecording == isRunning)
{
    stopRecording();
}
4

2 に答える 2

1

Androidのトグルボタンを試すことができます。詳細については、次を参照してください。

http://developer.android.com/guide/topics/ui/controls/togglebutton.html

于 2013-08-13T22:34:17.097 に答える