Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进程对话框在android中使用handler无法正常工作_Android_Listview_Handler_Progressdialog - Fatal编程技术网

进程对话框在android中使用handler无法正常工作

进程对话框在android中使用handler无法正常工作,android,listview,handler,progressdialog,Android,Listview,Handler,Progressdialog,我在一个应用程序中工作,其中我有“分配进度”对话框,但在完成加载后,列表视图在单击某些编辑框后不可见。列表视图可见 这是我的密码: new Thread() { public void run() { try { URL userurl = new URL("https://api.....");

我在一个应用程序中工作,其中我有“分配进度”对话框,但在完成加载后,列表视图在单击某些编辑框后不可见。列表视图可见

这是我的密码:

        new Thread() 
        {
            public void run() 
            {
             try
                {
                URL userurl = new URL("https://api.....");
                BufferedReader in = new BufferedReader(new InputStreamReader(userurl.openStream()));
                String inputLine;
                String strJson1 = "";
                while ((inputLine = in.readLine()) != null) 
                {
                    strJson1 += inputLine;
                }

                System.out.println("buffer"+strJson1);

                jsonobj = new JSONObject(strJson1);

            questionarray = jsonobj.getJSONArray("items");


                } catch (MalformedURLException tagobject) {
                    // TODO Auto-generated catch block
                    tagobject.printStackTrace();
                } catch (IOException tagobject) {
                    // TODO Auto-generated catch block
                    tagobject.printStackTrace();
                }catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    }
     handler.sendEmptyMessage(0);

    }
}.start();
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
    try
    {
        for (int i = 0;  i<questionarray.length(); i++) {

            ///Perform the operation get the data from WebService...



}
    catch(Exception e)
{
System.out.println(e);
}

}
};
新线程()
{
公开募捐
{
尝试
{
URL userurl=新URL(“https://api.....");
BufferedReader in=新的BufferedReader(新的InputStreamReader(userurl.openStream());
字符串输入线;
字符串strJson1=“”;
而((inputLine=in.readLine())!=null)
{
strJson1+=输入线;
}
System.out.println(“缓冲区”+strJson1);
jsonobj=新的JSONObject(strJson1);
questionarray=jsonobj.getJSONArray(“项目”);
}捕获(格式错误的DurLexException标记对象){
//TODO自动生成的捕捉块
tagobject.printStackTrace();
}捕获(IOException标记对象){
//TODO自动生成的捕捉块
tagobject.printStackTrace();
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
handler.sendEmptyMessage(0);
}
}.start();
handler=newhandler(){
@凌驾
公共无效handleMessage(消息消息消息){
尝试
{

对于(inti=0;i,首先使用单独的工作线程编写Rest客户机是错误的

根据维吉尔·多布扬斯基(Virgil Dobjanschi)的《编写Web服务的视频》,他拒绝在单独的工作线程中编写。 所以,为了让你的应用程序保持一致,你可以使用Android Rest客户端的服务

你可以参考
用于编写Android webservice客户端的基础。

首先使用单独的工作线程编写Rest客户端是错误的

根据维吉尔·多布扬斯基(Virgil Dobjanschi)的《编写Web服务的视频》,他拒绝在单独的工作线程中编写。 所以,为了让你的应用程序保持一致,你可以使用Android Rest客户端的服务

你可以参考
用于编写Android webservice客户端的基础。

为什么不使用asynctask进行api调用并显示进度?进度对话框或listview有什么问题?@ρ∑ρK我不知道如何确切地实现制作api的异步任务call@AbhinavSinghMaurya加载完成后,列表视图不显示单击列表视图正在显示的编辑文本..我已在列表视图顶部创建了搜索栏,因此您应该相应地提问。发布列表视图初始化和值分配的代码。使用progressDialog.Disclesh();在处理程序中,而不是在线程中为什么不使用asynctask进行api调用并显示进度?进度对话框或listview有什么问题?@ρ∑ѕρєK我不知道如何确切地实现用于生成api的异步任务call@AbhinavSinghMaurya加载完成后,列表视图不显示。单击编辑文本时列表视图正在显示。我已在列表视图顶部创建了搜索栏,因此您应该相应地提问。发布列表视图初始化和值分配的代码。在处理程序中使用progressDialog.Disclesh();而不是在线程中
02-23 16:32:10.178: E/AndroidRuntime(478): FATAL EXCEPTION: AsyncTask #1
02-23 16:32:10.178: E/AndroidRuntime(478): java.lang.RuntimeException: An error occured while executing doInBackground()
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.os.AsyncTask$3.done(AsyncTask.java:200)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.lang.Thread.run(Thread.java:1019)
02-23 16:32:10.178: E/AndroidRuntime(478): Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.view.ViewRoot.checkThread(ViewRoot.java:2932)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.view.ViewRoot.invalidateChild(ViewRoot.java:642)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.view.ViewRoot.invalidateChildInParent(ViewRoot.java:668)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.view.ViewGroup.invalidateChild(ViewGroup.java:2511)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.view.View.invalidate(View.java:5279)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.widget.AbsListView.resetList(AbsListView.java:1120)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.widget.ListView.resetList(ListView.java:511)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.widget.ListView.setAdapter(ListView.java:440)
02-23 16:32:10.178: E/AndroidRuntime(478):  at com.example.stack.MainActivity.Callpagedetails(MainActivity.java:266)
02-23 16:32:10.178: E/AndroidRuntime(478):  at com.example.stack.MainActivity$GetTask.doInBackground(MainActivity.java:104)
02-23 16:32:10.178: E/AndroidRuntime(478):  at com.example.stack.MainActivity$GetTask.doInBackground(MainActivity.java:1)
02-23 16:32:10.178: E/AndroidRuntime(478):  at android.os.AsyncTask$2.call(AsyncTask.java:185)
02-23 16:32:10.178: E/AndroidRuntime(478):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
02-23 16:32:10.178: E/AndroidRuntime(478):  ... 4 more
02-23 16:32:11.048: E/WindowManager(478): Activity com.example.stack.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4051f750 that was originally added here
02-23 16:32:11.048: E/WindowManager(478): android.view.WindowLeaked: Activity com.example.stack.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4051f750 that was originally added here
02-23 16:32:11.048: E/WindowManager(478):   at android.view.ViewRoot.<init>(ViewRoot.java:258)
02-23 16:32:11.048: E/WindowManager(478):   at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
02-23 16:32:11.048: E/WindowManager(478):   at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
02-23 16:32:11.048: E/WindowManager(478):   at android.view.Window$LocalWindowManager.addView(Window.java:424)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.Dialog.show(Dialog.java:241)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ProgressDialog.show(ProgressDialog.java:107)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ProgressDialog.show(ProgressDialog.java:90)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ProgressDialog.show(ProgressDialog.java:85)
02-23 16:32:11.048: E/WindowManager(478):   at com.example.stack.MainActivity$GetTask.onPreExecute(MainActivity.java:96)
02-23 16:32:11.048: E/WindowManager(478):   at android.os.AsyncTask.execute(AsyncTask.java:391)
02-23 16:32:11.048: E/WindowManager(478):   at com.example.stack.MainActivity.onCreate(MainActivity.java:88)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-23 16:32:11.048: E/WindowManager(478):   at android.os.Handler.dispatchMessage(Handler.java:99)
02-23 16:32:11.048: E/WindowManager(478):   at android.os.Looper.loop(Looper.java:123)
02-23 16:32:11.048: E/WindowManager(478):   at android.app.ActivityThread.main(ActivityThread.java:3683)
02-23 16:32:11.048: E/WindowManager(478):   at java.lang.reflect.Method.invokeNative(Native Method)
02-23 16:32:11.048: E/WindowManager(478):   at java.lang.reflect.Method.invoke(Method.java:507)
02-23 16:32:11.048: E/WindowManager(478):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-23 16:32:11.048: E/WindowManager(478):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-23 16:32:11.048: E/WindowManager(478):   at dalvik.system.NativeStart.main(Native Method)