Java 无法更新onActivityResult内的EditText中的文本

Java 无法更新onActivityResult内的EditText中的文本,java,android,speech-recognition,voice-recognition,Java,Android,Speech Recognition,Voice Recognition,我正在尝试在Android上使用语音识别。下面是我的代码 这是负责启动语音识别的按钮的代码。 speak.setOnClickListener(新的OnClickListener(){ 下面是一个onActivityResult方法 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE && result

我正在尝试在Android上使用语音识别。下面是我的代码

这是负责启动语音识别的按钮的代码。 speak.setOnClickListener(新的OnClickListener(){

下面是一个onActivityResult方法

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        ArrayList<String> matches_Text = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        Log.v("Results", matches_Text.get(0).toString());

//Update EditText cityname here

        String normalized_cityname = matches_Text.get(0).toString().trim();
        normalized_cityname = normalized_cityname.replace(" ","%20");
        try {
            getResponseString("http://api.openweathermap.org/data/2.5/weather?q="+normalized_cityname+"&units=metric", true);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
这是日志输出

    12-24 13:36:06.050  12164-12164/samarth.learning.http D/dalvikvm﹕ Late-enabling CheckJNI
12-24 13:36:06.300  12164-12164/samarth.learning.http D/Network﹕ Network
12-24 13:36:06.300  12164-12164/samarth.learning.http V/Lat﹕ 28.8331443
12-24 13:36:06.300  12164-12164/samarth.learning.http V/Long﹕ 78.7717138
12-24 13:36:06.360  12164-12164/samarth.learning.http D/libEGL﹕ loaded /vendor/lib/egl/libEGL_adreno.so
12-24 13:36:06.370  12164-12164/samarth.learning.http D/libEGL﹕ loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
12-24 13:36:06.380  12164-12164/samarth.learning.http D/libEGL﹕ loaded /vendor/lib/egl/libGLESv2_adreno.so
12-24 13:36:06.380  12164-12164/samarth.learning.http I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:316>: EGL 1.4 QUALCOMM build:  (CL4169980)
    OpenGL ES Shader Compiler Version: 17.01.10.SPL
    Build Date: 11/04/13 Mon
    Local Branch:
    Remote Branch:
    Local Patches:
    Reconstruct Branch:
12-24 13:36:06.430  12164-12164/samarth.learning.http D/OpenGLRenderer﹕ Enabling debug mode 0
12-24 13:36:06.531  12164-12164/samarth.learning.http E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-24 13:36:06.531  12164-12164/samarth.learning.http E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-24 13:36:08.232  12164-12164/samarth.learning.http W/IInputConnectionWrapper﹕ showStatusIcon on inactive InputConnection
12-24 13:36:18.844  12164-12164/samarth.learning.http V/Results﹕ new delhi
12-24 13:36:18.844  12164-12164/samarth.learning.http D/AndroidRuntime﹕ Shutting down VM
12-24 13:36:18.844  12164-12164/samarth.learning.http W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4157c8b0)
12-24 13:36:18.854  12164-12164/samarth.learning.http E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1234, result=-1, data=Intent { (has extras) }} to activity {samarth.learning.http/samarth.learning.http.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3462)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
            at android.app.ActivityThread.access$1100(ActivityThread.java:150)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at samarth.learning.http.MainActivity.onActivityResult(MainActivity.java:160)
            at android.app.Activity.dispatchActivityResult(Activity.java:5322)
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3458)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
            at android.app.ActivityThread.access$1100(ActivityThread.java:150)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
12-24 13:36:22.558  12164-12164/samarth.learning.http I/Process﹕ Sending signal. PID: 12164 SIG: 9
12-24 13:36:06.050 12164-12164/samarth.learning.http D/dalvikvm﹕ 延迟启用CheckJNI
12-24 13:36:06.300 12164-12164/samarth.learning.httpd/Network﹕ 网络
12-24 13:36:06.300 12164-12164/samarth.learning.http V/Lat﹕ 28.8331443
12-24 13:36:06.300 12164-12164/samarth.learning.http V/Long﹕ 78.7717138
12-24 13:36:06.360 12164-12164/samarth.learning.httpd/libEGL﹕ 已加载/vendor/lib/egl/libEGL_地址so
12-24 13:36:06.370 12164-12164/samarth.learning.httpd/libEGL﹕ 已加载/vendor/lib/egl/libGLESv1_CM_adreno.so
12-24 13:36:06.380 12164-12164/samarth.learning.httpd/libEGL﹕ 已加载/vendor/lib/egl/libGLESv2_adreno.so
12-24 13:36:06.380 12164-12164/samarth.learning.http I/Adreno EGL﹕ : EGL 1.4高通公司构建:(CL4169980)
OpenGL ES着色器编译器版本:17.01.10.SPL
建造日期:11/04/13周一
本地分行:
远程分支:
本地修补程序:
重建分支机构:
12-24 13:36:06.430 12164-12164/samarth.learning.httpd/opengld﹕ 正在启用调试模式0
12-24 13:36:06.5312164-12164/samarth.learning.http/E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE SPAN的长度不能为零
12-24 13:36:06.5312164-12164/samarth.learning.http/E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE SPAN的长度不能为零
12-24 13:36:08.232 12164-12164/samarth.learning.http W/IInputConnectionWrapper﹕ 在非活动输入连接上显示状态图标
12-24 13:36:18.844 12164-12164/samarth.learning.http V/Results﹕ 新德里
12-24 13:36:18.844 12164-12164/samarth.learning.http D/AndroidRuntime﹕ 关闭虚拟机
12-24 13:36:18.844 12164-12164/samarth.learning.http W/dalvikvm﹕ threadid=1:线程以未捕获异常退出(组=0x4157c8b0)
12-24 13:36:18.854 12164-12164/samarth.learning.http E/AndroidRuntime﹕ 致命异常:主
java.lang.RuntimeException:未能将结果ResultInfo{who=null,request=1234,result=-1,data=Intent{(有附加项)}}传递到活动{samarth.learning.http/samarth.learning.http.MainActivity}:java.lang.NullPointerException
位于android.app.ActivityThread.deliverResults(ActivityThread.java:3462)
位于android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
在android.app.ActivityThread.access$1100(ActivityThread.java:150)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:213)
位于android.app.ActivityThread.main(ActivityThread.java:5225)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:741)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
在samarth.learning.http.MainActivity.onActivityResult(MainActivity.java:160)
位于android.app.Activity.dispatchActivityResult(Activity.java:5322)
位于android.app.ActivityThread.deliverResults(ActivityThread.java:3458)
位于android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
在android.app.ActivityThread.access$1100(ActivityThread.java:150)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:213)
位于android.app.ActivityThread.main(ActivityThread.java:5225)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:741)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
在dalvik.system.NativeStart.main(本机方法)
12-24 13:36:22.558 12164-12164/samarth.learning.httpi/Process﹕ 发送信号。PID:12164信号:9
这就是你的意思吗

我认为文本有时是空的?!添加一个

if(matches_Text == null){
   Log.v("Results","matches_Text is NULL!"); 
   return;
}

ArrayList matches\u Text=da…

show getresponsestring method…添加完方法之后添加上述代码。因此打印字符串的log语句不会崩溃,但是如果在cityname.setText中使用相同的字符串,它会崩溃吗?字符串是否与您在日志中预期的一样?堆栈崩溃是什么?是否确定e您的cityname字段设置正确吗?是的,日志显示
结果:这是我一直说的
,然后崩溃说
虚拟机关闭了
。您能发布显示崩溃的日志吗?是的,我想这对我有帮助。
    12-24 13:36:06.050  12164-12164/samarth.learning.http D/dalvikvm﹕ Late-enabling CheckJNI
12-24 13:36:06.300  12164-12164/samarth.learning.http D/Network﹕ Network
12-24 13:36:06.300  12164-12164/samarth.learning.http V/Lat﹕ 28.8331443
12-24 13:36:06.300  12164-12164/samarth.learning.http V/Long﹕ 78.7717138
12-24 13:36:06.360  12164-12164/samarth.learning.http D/libEGL﹕ loaded /vendor/lib/egl/libEGL_adreno.so
12-24 13:36:06.370  12164-12164/samarth.learning.http D/libEGL﹕ loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
12-24 13:36:06.380  12164-12164/samarth.learning.http D/libEGL﹕ loaded /vendor/lib/egl/libGLESv2_adreno.so
12-24 13:36:06.380  12164-12164/samarth.learning.http I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:316>: EGL 1.4 QUALCOMM build:  (CL4169980)
    OpenGL ES Shader Compiler Version: 17.01.10.SPL
    Build Date: 11/04/13 Mon
    Local Branch:
    Remote Branch:
    Local Patches:
    Reconstruct Branch:
12-24 13:36:06.430  12164-12164/samarth.learning.http D/OpenGLRenderer﹕ Enabling debug mode 0
12-24 13:36:06.531  12164-12164/samarth.learning.http E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-24 13:36:06.531  12164-12164/samarth.learning.http E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-24 13:36:08.232  12164-12164/samarth.learning.http W/IInputConnectionWrapper﹕ showStatusIcon on inactive InputConnection
12-24 13:36:18.844  12164-12164/samarth.learning.http V/Results﹕ new delhi
12-24 13:36:18.844  12164-12164/samarth.learning.http D/AndroidRuntime﹕ Shutting down VM
12-24 13:36:18.844  12164-12164/samarth.learning.http W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4157c8b0)
12-24 13:36:18.854  12164-12164/samarth.learning.http E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1234, result=-1, data=Intent { (has extras) }} to activity {samarth.learning.http/samarth.learning.http.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3462)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
            at android.app.ActivityThread.access$1100(ActivityThread.java:150)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at samarth.learning.http.MainActivity.onActivityResult(MainActivity.java:160)
            at android.app.Activity.dispatchActivityResult(Activity.java:5322)
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3458)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
            at android.app.ActivityThread.access$1100(ActivityThread.java:150)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
12-24 13:36:22.558  12164-12164/samarth.learning.http I/Process﹕ Sending signal. PID: 12164 SIG: 9
if(matches_Text == null){
   Log.v("Results","matches_Text is NULL!"); 
   return;
}