android - 我正在获取 listView.getChildCount(),设置 arrayadapter 后是否为 0?

标签 android

我想从 facebook 加载图像并填充到 ListView 中,我能够获取 friend 列表和他们的信息,但我想设置图像我正在获取 getChildCount() 0,请帮忙,

   public static ArrayList<FBUser> fbUserArrayList;
    public static Drawable sharedDrawable;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.friends_list_view);
        this.setTitle("FB Friend List");

        final ListView listView = (ListView) findViewById(R.id.listview);
        FriendListAdapter couponsListAdapter = new FriendListAdapter(this,
                fbUserArrayList);
        listView.setAdapter(couponsListAdapter);

        couponsListAdapter.notifyDataSetChanged();


        setFbUsersImage(listView,fbUserArrayList);

    }

    private void setFbUsersImage(final ListView listView,final ArrayList<FBUser> fbUserArrayList) {
                // here am getting 0 ???
        for (int i = 0; i < listView.getChildCount(); i++) {
 ////           
   }

    }

最佳答案

ListView 尚未绘制,因此它没有任何子项。不幸的是,没有回调,如 onResume(),用于绘制 View 时,但您可以使用 Runnable 来执行您想要的操作。


添加
让我们在 onCreate() 中做一些更改:

listView.setAdapter(couponsListAdapter);
// Remove your calls to notifyDataSetChanged and setFbUsersImage

// Add this Runnable
listView.post(new Runnable() {
    @Override
    public void run() {
        setFbUsersImage(listView,fbUserArrayList);
    }
});

您需要像fbUserArrayList 一样使listView 成为一个字段变量。现在 setFbUsersImage() 将在 ListView 有子项时运行。

总而言之,如果您尝试以任何方式修改行,适配器是执行此操作的最佳场所。

关于android - 我正在获取 listView.getChildCount(),设置 arrayadapter 后是否为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13651226/

相关文章:

用于嵌入超链接支持的 android pdf 查看器 sdk

android - 如何应用 android 应用程序的所有 TextInputEditText 的样式

android - 错误 : Could not find method armeabi-v7a() for arguments [arm64-v8a]

android - Gradle不包含测试依赖项

Android TextToSpeech addSpeech() 不起作用

java - 未找到 Google Drive SDK Activity 异常

android - 滑动菜单在项目单击上启动 Activity

Android:使用 XML 自定义 EditText 布局

android - 了解如何为 android/Iphone 之间的报价/答案 (webrtc) 生成正确的 sdp

android.view.WindowManager$BadTokenException : Unable to add window -- token android. os.BinderProxy@dff00ec 无效;你的 Activity 在运行吗?