Java 单击按钮开始和停止录制
我正在制作一个简单的android应用程序来录制声音。我有一个startRecording()和stopRecording()方法。现在,我实现了一个名为“Touch to record”(触摸录制)的切换按钮,正如您所想象的,当选中该按钮时,您必须按住录制按钮录制声音,当该按钮处于“关闭”状态时,您必须单击开始,然后单击停止 这是当前代码:Java 单击按钮开始和停止录制,java,android,eclipse,Java,Android,Eclipse,我正在制作一个简单的android应用程序来录制声音。我有一个startRecording()和stopRecording()方法。现在,我实现了一个名为“Touch to record”(触摸录制)的切换按钮,正如您所想象的,当选中该按钮时,您必须按住录制按钮录制声音,当该按钮处于“关闭”状态时,您必须单击开始,然后单击停止 这是当前代码: touchToRecord.setOnCheckedChangeListener(new OnCheckedChangeListener(){
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
}
}
});
现在我不知道如何使onclick侦听器。如果我试着这样做:
recBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
if (startRecording == isRunning)
{
stopRecording();
}
它不起作用,因为它在setOnClickListener下面加了下划线,并说:
类型视图中的方法setOnClickListener(View.OnClickListener)不适用于参数(new DialogInterface.OnClickListener(){})
还有一件事,在我工作之后;如何检查该方法是否已使用if语句运行?我想这样做:
recBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
if (startRecording == isRunning)
{
stopRecording();
}
你可以试试安卓切换按钮。请参阅以下方面的更多信息: 解决了这个问题 通过在XML中设置onClick,然后仅仅创建方法,我避免了使用onClickListener。代码如下:
public void recordBtnClick(View v){
final ToggleButton touchToRecord = (ToggleButton)findViewById(R.id.tBtn1);
final ImageButton recBtn = (ImageButton) findViewById(com.whizzappseasyvoicenotepad.R.id.recButton);
if (touchToRecord.isChecked() == false)
{
if (recorder == null)
{
recBtn.setImageResource(com.whizzappseasyvoicenotepad.R.drawable.record_btn_pressed);
chTimer.start();
chTimer.setTextColor(Color.GREEN);
startRecording();
}
else if (recorder != null)
{
recBtn.setImageResource(com.whizzappseasyvoicenotepad.R.drawable.record_btn);
chTimer.stop();
stopRecording();
nameAlert();
}
}
else
{
//DO NOTHING
}
}
我使用的正是这个切换按钮(不是开关)