我正在使用.php文件使用1个唯一字段(在我的情况下为手机号码)从数据库中检索数据,并将其粘贴到我的xml文件中,
例如,我的数据库包含名称,移动,消息..字段,甚至我的xml也包含名称,移动,消息编辑框。因此,数据库中存在的数据应为我的编辑框的.setText()

这是我的代码::

EditText name1 = (EditText) findViewById(R.id.editText5);
string nm = json_data.getString("name"); //data at name is assigned to nm successfully
name1.setText(nm.toString()); //this line is not doing the task giving an exception(fatal exception asynctask #1)


请建议我使用什么而不是setText将值分配给我的编辑框。我尝试了ExtractedSetTextstring.getText.tostring,进行了搜索以解决“致命异常asynctask#1”,但没有帮助。

任何建议都会有很大帮助
谢谢

在postExecute(line:163)::

Details.this.runOnUiThread(new Runnable() {
    public void run()
    {
         EditText name1 = (EditText) findViewById(R.id.editText5);
         Log.e("onPostExecute nm", nm.toString());
         name1.append(nm.toString());
         //but its throwing a null pointer exception
         //name1.setText(nm.toString());  //this is not doing the task
    }
}


日志猫::

12-25 14:36:50.700: E/AndroidRuntime(17901): FATAL EXCEPTION: main
12-25 14:36:50.700: E/AndroidRuntime(17901): java.lang.NullPointerException
12-25 14:36:50.700: E/AndroidRuntime(17901):    at com.example.pinks.Details$Fetch$1.run(Details.java:168)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.app.Activity.runOnUiThread(Activity.java:4766)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at com.example.pinks.Details$Fetch.onPostExecute(Details.java:163)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at com.example.pinks.Details$Fetch.onPostExecute(Details.java:1)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.os.AsyncTask.finish(AsyncTask.java:631)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.os.Looper.loop(Looper.java:174)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at android.app.ActivityThread.main(ActivityThread.java:4952)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at java.lang.reflect.Method.invokeNative(Native Method)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at java.lang.reflect.Method.invoke(Method.java:511)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
12-25 14:36:50.700: E/AndroidRuntime(17901):    at dalvik.system.NativeStart.main(Native Method)

最佳答案

如果要在doInBackground()中更改UI,请尝试此操作

   YourActivity.this.runOnUiThread(new Runnable() {
       public void run() {
         name1.setText(nm.toString());
   }
  });


或者您可以直接在postExecute()中更改UI

希望这会有所帮助:)

07-26 09:31
查看更多