使用语音到文本在edittext中附加文本

时间:2014-11-10 17:58:37

标签: android

我有一个edittext,我正在使用语音文本。我想在edittext中附加文本而不是覆盖。我怎样才能做到这一点。现在它捕获一个句子并以edittext显示。感谢

public void onClick(查看v){

            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
             intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);          
            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");



             try {
                    startActivityForResult(intent, RESULT_SPEECH);
                    et_text.setText("");


                } catch (ActivityNotFoundException a) {

        Toast.makeText(getApplicationContext(),"Opps! Your device doesn't support Speech to Text", Toast.LENGTH_SHORT).show();

                }


        }



 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        switch (requestCode) {
        case RESULT_SPEECH: {
            if (resultCode == RESULT_OK && null != data) {


                ArrayList<String> text = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);



                et_text.setText(text.get(0));



            }
            break;
        }

        }
    }

2 个答案:

答案 0 :(得分:0)

我猜你第一次使用你的代码时,EditText是空的,然后你的代码执行并在识别一些语音后设置一些文本,在第二次运行时你再次想要显示语音中的文本并希望将其附加到EditText上设置的最后一个文本。在使用EditTextsetText()上设置文字之前,先在{{1}上调用getText()然后将其保存在某个EditText变量中。然后连接第二次运行代码时生成的文本。

String

答案 1 :(得分:0)

您只需使用append方法而不是setText

et_text.append(text.get(0));