Android setOnTouchListener问题
我写了这段代码,但有一些问题,有人可以帮助吗 我的问题是: 当我释放我的应用程序按钮(“发送”)时,显示错误并关闭我的应用程序。我认为问题在于这个代码 记录停止记录() 但是我不知道怎么修理它 这是我的密码Android setOnTouchListener问题,android,ontouchlistener,Android,Ontouchlistener,我写了这段代码,但有一些问题,有人可以帮助吗 我的问题是: 当我释放我的应用程序按钮(“发送”)时,显示错误并关闭我的应用程序。我认为问题在于这个代码 记录停止记录() 但是我不知道怎么修理它 这是我的密码 send.setOnClickListener(new OnClickListener() { public void onClick(View v) { Itemclick(); } }); send.setOnTo
send.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Itemclick();
}
});
send.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
{
Rec=new Recorder();
Rec.startRecord();
break;
}
case MotionEvent.ACTION_UP:
{ Rec.StopRecord();
db.open();
db.insert_offline(Rec.getName(), true, false);
listItems.add(Rec.getName());
adapter.notifyDataSetChanged();
db.close();
Rec=null;
break;
}
}
return false;
}
});
这是停止记录
public void StopRecord()
{
mr.stop();
mr.release();
mr = null;
}
它与onTouchListener/onClickListener毫无关系。这是阻止“mr”的问题 这是“非法状态”,我认为这是因为stop先生没有必要,因为他被阻止了。您必须添加一个布尔值来检查它是否已停止或启动
boolean started = false;
如果在代码中启动或停止它,请将其设置为true/false。然后在停车场:
public void StopRecord(){
if(started){
mr.stop();
}
mr.release();//maybe with this too
mr = null;
}
您需要在调用停止时添加异常function@Amir133当它停止时,您可能正在停止它。这会导致例外情况。看到我的答案了吗