Отправить текст, если editText содержит текст или записать аудио с помощью ontouchlistener - PullRequest
3 голосов
/ 10 июня 2019

Мое приложение имеет нижнюю панель с кнопкой отправки / записи. моя цель заключается в использовании OntouchListener: когда editText не содержит текста для включения функции записи, если editText содержит текст, чтобы игнорировать функцию записи и просто добавить текст в список. как мне это заархивировать?

Та же самая функция, которая используется внутри кнопки записи / отправки WhatsApp (чат)

Я попытался использовать код ниже, где send - красная кнопка

enter image description here

(некоторые переменные были объявлены вне этого кода)

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;
        }



    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...