Android AsyncTask未正确加载数据。 公共类HomeActivity扩展活动{ //public ArrayList users1=new ArrayList(); @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //ListView lv=(ListView)findViewById(R.id.user\u crumps\u list); 最终ArrayList用户s1=新ArrayList(); User=null; 类AsyncLoader扩展了AsyncTask{ 进程对话; @凌驾 受保护的void onPreExecute(){ dialog=newprogressdialog(HomeActivity.this);//应用程序-您的主要活动类 setMessage(“请稍候…”); dialog.show(); } @凌驾 受保护的ArrayList doInBackground(用户…用户){ 字符串响应=”; for(用户:用户) 试一试{ 试一试{ 用户=新用户(“4eeb34c6d80e8f1214000000”); user.getSupList(); }捕获(IOE异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); }捕获(JSONException e){ //TODO自动生成的捕捉块 e、 printStackTrace(); } for(用户u:用户。以下){ users1.add(u); } }捕获(例外e){ e、 printStackTrace(); } 返回用户1; } 受保护的void onPostExecute(字符串结果){ dialog.dismise(); 返回; } } AsyncLoader任务=新建AsyncLoader(); 任务执行(用户); setContentView(R.layout.user\u main\u tab\u home); 最终UserFollowListAdapter csl=新UserFollowListAdapter(this,R.layout.user\u list\u项,users1,this); ListView lv=(ListView)findViewById(R.id.user\u列表); 公共图书馆(ROR){ 新建AlertDialog.Builder(此) .setTitle(“Oops,服务器关闭:(”) .setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){ @凌驾 公共void onClick(对话框接口arg0,int arg1){ //TODO自动生成的方法存根 } // }).setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){ public void onClick(对话框接口对话框,int whichButton){ //什么也不做。 } }).show(); } }

Android AsyncTask未正确加载数据。 公共类HomeActivity扩展活动{ //public ArrayList users1=new ArrayList(); @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //ListView lv=(ListView)findViewById(R.id.user\u crumps\u list); 最终ArrayList用户s1=新ArrayList(); User=null; 类AsyncLoader扩展了AsyncTask{ 进程对话; @凌驾 受保护的void onPreExecute(){ dialog=newprogressdialog(HomeActivity.this);//应用程序-您的主要活动类 setMessage(“请稍候…”); dialog.show(); } @凌驾 受保护的ArrayList doInBackground(用户…用户){ 字符串响应=”; for(用户:用户) 试一试{ 试一试{ 用户=新用户(“4eeb34c6d80e8f1214000000”); user.getSupList(); }捕获(IOE异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); }捕获(JSONException e){ //TODO自动生成的捕捉块 e、 printStackTrace(); } for(用户u:用户。以下){ users1.add(u); } }捕获(例外e){ e、 printStackTrace(); } 返回用户1; } 受保护的void onPostExecute(字符串结果){ dialog.dismise(); 返回; } } AsyncLoader任务=新建AsyncLoader(); 任务执行(用户); setContentView(R.layout.user\u main\u tab\u home); 最终UserFollowListAdapter csl=新UserFollowListAdapter(this,R.layout.user\u list\u项,users1,this); ListView lv=(ListView)findViewById(R.id.user\u列表); 公共图书馆(ROR){ 新建AlertDialog.Builder(此) .setTitle(“Oops,服务器关闭:(”) .setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){ @凌驾 公共void onClick(对话框接口arg0,int arg1){ //TODO自动生成的方法存根 } // }).setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){ public void onClick(对话框接口对话框,int whichButton){ //什么也不做。 } }).show(); } },android,android-asynctask,Android,Android Asynctask,这是一个无限循环,数据根本不加载,对话框一直无限循环,直到我点击它。我的目标是加载一些初始数据量,然后根据用户滚动获取数据。到目前为止,我甚至无法显示数据 调试之后,我发现user1变量中没有存储任何值,即使迭代正在进行,我也无法找出原因 关于我哪里出了问题,有什么线索吗?我真的不明白你想做什么,但问题可能在于,在你调用task.execute(user);时,user为空。因此(user-user:users)的在您的AsyncTask中没有要迭代的项。不是。正如您所看到的,我在AsyncTa

这是一个无限循环,数据根本不加载,对话框一直无限循环,直到我点击它。我的目标是加载一些初始数据量,然后根据用户滚动获取数据。到目前为止,我甚至无法显示数据

调试之后,我发现user1变量中没有存储任何值,即使迭代正在进行,我也无法找出原因


关于我哪里出了问题,有什么线索吗?

我真的不明白你想做什么,但问题可能在于,在你调用
task.execute(user);
时,
user
为空。因此(user-user:users)的
在您的AsyncTask中没有要迭代的项。

不是。正如您所看到的,我在AsyncTask类中再次定义了用户。它不是空的。我已经对它进行了调试。我在那里所做的只是显示所有数据。到目前为止,这就是我想要做的。然后,我将限制屏幕上应该显示多少数据。足够公平。。。正如我所说,您的逻辑有点难以理解。如果您已经调试了它,它挂在哪里?我们唯一看不到的代码是
getsuplist()
。当应用程序正在执行时,进入Eclipse中的DDMS透视图,查看应用程序中的线程。找到AsyncTask,看看它是否在任何地方挂起。奇怪的是,它在任何地方都没有挂起。当我单击屏幕时,对话框就会消失,但没有显示任何数据。使用它时,完全相同的代码获取数据基本上,我只是将代码转移到AsyncTask类中,而没有对API调用做任何更改。
public class HomeActivity extends Activity{


//   public ArrayList<User> users1 = new ArrayList<User>();
    @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

      // ListView lv = (ListView) findViewById(R.id.user_crumbs_list);

    final ArrayList<User> users1 = new ArrayList<User>();  
    User user = null;
       class AsyncLoader extends AsyncTask<User,Void, ArrayList<User>> {
           ProgressDialog dialog;

        @Override

        protected void onPreExecute(){

               dialog = new ProgressDialog(HomeActivity.this); // App - your main activity class
               dialog.setMessage("Please, wait...");
               dialog.show();
        }

        @Override
        protected ArrayList<User> doInBackground(User... users) {
            String response = "";

            for (User user:users)

                try {

                  try {
                        user = new User("4eeb34c6d80e8f1214000000");
                        user.getFollowingCrumbsUpList();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }





                    for(User u : user.following){
                        users1.add(u);
                    }



                } catch (Exception e) {
                    e.printStackTrace();
                }

        return users1;
        }

        protected void onPostExecute(String result) {
            dialog.dismiss();
            return;

        }


        }






        AsyncLoader task = new AsyncLoader();
        task.execute(user);



        setContentView(R.layout.user_main_tab_home);
        final UserFollowingListAdapter csl = new          UserFollowingListAdapter(this,R.layout.user_list_item,users1,this);
        ListView lv = (ListView) findViewById(R.id.user_list);          









       public void showError(){
        new AlertDialog.Builder(this)
        .setTitle(" Oops , Server down :( ")
        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub

            }
            //
        }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                // Do nothing.
            }
        }).show();

      }
}