Мое приложение имеет нижнюю панель с кнопкой отправки / записи. моя цель заключается в использовании OntouchListener
: когда editText не содержит текста для включения функции записи, если editText содержит текст, чтобы игнорировать функцию записи и просто добавить текст в список. как мне это заархивировать?
Та же самая функция, которая используется внутри кнопки записи / отправки WhatsApp (чат)
Я попытался использовать код ниже, где send
- красная кнопка
(некоторые переменные были объявлены вне этого кода)
send.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view,MotionEvent motionEvent) {
if(!editText.getText().toString().equals("")){
send.setImageDrawable(getDrawable(R.drawable.send));
String string = editText.getText().toString();
dati.add(new ModelloDati(tlDATE,""));
dati.add(new ModelloDati(tlTEXT,string));
adapter.notifyItemInserted(dati.size());
editText.getText().clear();
}
if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){
bar.setVisibility(View.GONE);
bar_rec.setVisibility(View.VISIBLE);
outputFile =
Environment.getExternalStorageDirectory().getAbsolutePath() + "
/recording.3gp";
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
recorder.setOutputFile(outputFile);
try {
recorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();
recorder.start();
}else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
bar.setVisibility(View.VISIBLE);
bar_rec.setVisibility(View.GONE);
recorder.stop();
recorder.release();
chronometer.setBase(SystemClock.elapsedRealtime());
dati.add(new ModelloDati(tlAUDIO,outputFile));
adapter.notifyDataSetChanged();
}
recyclerView.smoothScrollToPosition(dati.size());
closeKeyboard();
return false;
}
});