Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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线程和ArrayAdapter_Android_Multithreading_Google App Engine_Listview_Runnable - Fatal编程技术网

Android线程和ArrayAdapter

Android线程和ArrayAdapter,android,multithreading,google-app-engine,listview,runnable,Android,Multithreading,Google App Engine,Listview,Runnable,我从Google应用程序引擎中获取字符串形式的数据,所以我必须在一个线程中完成。接下来,我想在ListView中显示它,并尝试执行类似以下代码的操作: public void ShowContacts (){ new Thread(new Runnable() { @Override public void run() { try { final Re

我从Google应用程序引擎中获取字符串形式的数据,所以我必须在一个线程中完成。接下来,我想在ListView中显示它,并尝试执行类似以下代码的操作:

public void ShowContacts (){    
    new Thread(new Runnable() {         
        @Override
        public void run() {
            try
            {
                final RestClient client = new RestClient("http://xxx.appspot.com/client");
                client.AddParam("userName", "user");
                client.Execute(RequestMethod.GET);
                _listView.post(new Runnable() {                 
                    @Override
                    public void run() {
                        String s = client.getResponse();
                        String[] items = s.split(";");

                        //adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, items);                         
                        //_listView.setAdapter(adapter);                            
                    }
                });                             
            }
            catch (Exception e)
            {

            }
        }
    }).start();
}     
public void ShowContacts(){
新线程(新Runnable(){
@凌驾
公开募捐{
尝试
{
最终RestClient=新RestClient(“http://xxx.appspot.com/client");
client.AddParam(“用户名”、“用户”);
client.Execute(RequestMethod.GET);
_post(新的Runnable(){
@凌驾
公开募捐{
字符串s=client.getResponse();
String[]items=s.split(“;”);
//adapter=new ArrayAdapter(这个,android.R.layout.simple_list_item_1,android.R.id.text1,items);
//_setAdapter(适配器);
}
});                             
}
捕获(例外e)
{
}
}
}).start();
}     
这个代码对我不起作用。有没有办法从线程中获取一些值并将其设置为全局变量,或者直接在线程中构造ArrayAdapter或其他方法?

用于从服务器获取数据并添加到ListView,如下所示:

public class getDatafromserver extends AsyncTask<String, Void, String> {

          @Override

      protected void onPreExecute() {
      }

      @Override
      protected String doInBackground(String... params) {

         final RestClient client = new 
                             RestClient("http://xxx.appspot.com/client");
            client.AddParam("userName", "user");
            client.Execute(RequestMethod.GET);
          String s = client.getResponse();
          return s  ;
      }      

      @Override
      protected void onPostExecute(String result) {                           
                    String[] items = result.split(";");

                    adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, android.R.id.text1, items);                         
                    _listView.setAdapter(adapter);  
      }
}
用于从服务器获取数据并添加到ListView,如下所示:

public class getDatafromserver extends AsyncTask<String, Void, String> {

          @Override

      protected void onPreExecute() {
      }

      @Override
      protected String doInBackground(String... params) {

         final RestClient client = new 
                             RestClient("http://xxx.appspot.com/client");
            client.AddParam("userName", "user");
            client.Execute(RequestMethod.GET);
          String s = client.getResponse();
          return s  ;
      }      

      @Override
      protected void onPostExecute(String result) {                           
                    String[] items = result.split(";");

                    adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, android.R.id.text1, items);                         
                    _listView.setAdapter(adapter);  
      }
}

这个代码对我不起作用。
它不起作用怎么办?如果您对所面临的问题更具体一点,这会有所帮助。当我试图构造适配器时,我有一个错误:“构造函数ArrayAdapter(new Runnable(){},int,int,String[])未定义”在适配器构造函数的内部,参数将
更改为活动的
名称。此
但用活动类的真实名称填充。另外,我建议您在深入研究Android之前花一点时间温习一下Java=)
这段代码对我不起作用。
它怎么不起作用?如果您对所面临的问题更具体一点,这会有所帮助。当我试图构造适配器时,我有一个错误:“构造函数ArrayAdapter(new Runnable(){},int,int,String[])未定义”在适配器构造函数的内部,参数将
更改为活动的
名称。此
但用活动类的真实名称填充。另外,我建议在深入研究Android之前花点时间复习一下Java=)