RecyclerView 中的 NullPointEreException

2024-01-04

我尝试从 AsyncTask 中的服务器下载列表并将其放入 recyclerView 中。但是,我仍然在 RecyclerView 上收到 NullPointException 并且不知道为什么。我设置了 LayoutManager 和其他东西,但问题仍然存在。 这是我的片段:

public class ChatMainFragment extends Fragment {

private static final String TAG = ChatMainFragment.class.getSimpleName() ;
private List<ChatUserListItem> userList;
private ArrayAdapter adapter;
public RecyclerView mUserListView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.chat_user_list, container, false);
    mUserListView = (RecyclerView)view.findViewById(R.id.user_list);
    GetUsersAsyncTask task = new GetUsersAsyncTask(this);
    task.execute();


    return view;
}



  public class GetUsersAsyncTask extends AsyncTask<String, String, List<ChatUserListItem>> {


   public Context mContext;
   private ChatMainFragment mFragment;

   public GetUsersAsyncTask(ChatMainFragment fragment) {
       this.mFragment = fragment;
   }


   @Override
   protected List<ChatUserListItem> doInBackground(String... params) {
       List<ChatUserListItem> userList = new ArrayList<>();
       try {
           userList  = ServerConnector.getInstance(mContext).getChatUserList();
        /*requestEnds(userList);*/
       } catch (ServerConnectorException e) {
           e.printStackTrace();
       }

       return userList;
   }

   @Override
   protected void onPostExecute(List<ChatUserListItem> chatUserListItems) {
       Log.e(TAG, "onPostExecute: ");
       userList = chatUserListItems ;
       ChatMainAdapter adapter = new ChatMainAdapter(getActivity().getApplicationContext(), userList);
       mUserListView.setAdapter(adapter);
       mUserListView.setLayoutManager(new LinearLayoutManager(getActivity().getApplicationContext()));
       adapter.notifyDataSetChanged();


   }
   }
}

这是我的适配器:

public class ChatMainAdapter extends RecyclerView.Adapter<ChatMainAdapter.MyViewHolder> {
    private LayoutInflater inflater;
    private TextView mUserAvatar;

private Context mContext;
 List<ChatUserListItem> userList;

public ChatMainAdapter(Context context,List<ChatUserListItem>userList){
    this.mContext=context;
    this.userList=userList;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int i) {
    View view = inflater.inflate(R.layout.chat_user_list_item, parent, false);
    MyViewHolder holder = new MyViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder viewHolder, int position) {
        ChatUserListItem current = userList.get(position);
        viewHolder.mUserName.setText(current.getName());
}

@Override
public int getItemCount() {
    return userList.size();
}
class MyViewHolder extends RecyclerView.ViewHolder{

  TextView mUserName;

    public MyViewHolder(View itemView) {
        super(itemView);
        mUserName= (TextView)itemView.findViewById(R.id.user_name);

    }

}
}

我做错了什么?


像这样改变你的 AsyncTask

                        public class GetUsersAsyncTask extends AsyncTask<String, String, List<ChatUserListItem>> {


                     public Context mContext;
                     private ChatMainFragment mFragment;
                     private RecyclerView mUserRecyclerView;

                     public GetUsersAsyncTask(ChatMainFragment fragment,RecyclerView mRListView) {
                         this.mFragment = fragment;
                         this.mUserRecyclerView=mRListView;
                     }


                     @Override
                     protected List<ChatUserListItem> doInBackground(String... params) {
                         List<ChatUserListItem> userList = new ArrayList<>();
                         try {
                             userList  = ServerConnector.getInstance(mContext).getChatUserList();
                          /*requestEnds(userList);*/
                         } catch (ServerConnectorException e) {
                             e.printStackTrace();
                         }

                         return userList;
                     }

                     @Override
                     protected void onPostExecute(List<ChatUserListItem> chatUserListItems) {
                         Log.e(TAG, "onPostExecute: ");
                         userList = chatUserListItems ;
                         ChatMainAdapter adapter = new ChatMainAdapter(getActivity().getApplicationContext(), userList);
                        mUserRecyclerView.setAdapter(adapter);
                        mUserRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity().getApplicationContext()));
                         adapter.notifyDataSetChanged();


                     }
                     }

当您在 onCreateView 中启动异步类时,像这样启动它

 mUserListView = (RecyclerView)view.findViewById(R.id.user_list);
GetUsersAsyncTask task = new GetUsersAsyncTask(this,mUserListView);

只需替换代码,它应该按预期工作..希望这有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RecyclerView 中的 NullPointEreException 的相关文章

  • Horizo​​ntalScrollView 中带有 RecyclerView 的 2D 列表

    我正在尝试构建一个视图 允许用户水平和垂直滚动类似 Excel 的结构 我最初的想法是将 RecyclerView 带有 LinearManager 放入 Horizo ntalScrollView 中 但这似乎不起作用 这是我的代码
  • 如何将TabLayout与Recyclerview同步?

    我有一个TabLayout with Recyclerview这样当单击选项卡时Recyclerview滚动到特定位置 我也想要相反的过程 这样当Recyclerview滚动到特定位置 然后该特定选项卡会突出显示 例如 如果有 4 个选项卡
  • RecyclerView 的弹跳效果

    我想在RecyclerView 每当我过度滚动内容时就会出现反弹效果 是否有一个库或示例 我也找不到任何支持 RecyclerView 弹跳效果的库 最终我自己实现了一个新的库 查看我的图书馆过度滚动弹力 android https git
  • 如何在RecyclerView中实现setOnScrollListener

    当用户到达列表中可见的项目时 如何在底部显示进度栏 我已经编写了一个代码 其中我使用网络服务获取数据 现在我想填充部分记录 因为我有大约630 条记录在我的 JSON 中 这是我用来从 JSON 获取数据并填充到 RecyclerView
  • 无法解析:com.android.support:recyclerview-v7:28.1.1

    我正在尝试使用 RecyclerView 并添加了这一行implementation com android support recyclerview v7 28 0 0 alpha3 to my build gradle app 但它给出
  • 为什么recycleview数据无法与服务器端数据库数据同步

    我正在使用rest api向我在android中的应用程序提供数据 对于数据库 我正在使用phpmyadmin并在本地主机中执行此操作 一切顺利 但是当我在数据库中添加新数据时 我的recycleview无法与数据库中的最新数据同步 因此当
  • RecyclerView 未显示列表中的所有项目

    我在用RecyclerView在我的应用程序中 每次我打开屏幕时 我只能看到一项 但当我调试时 它每次都会出现onBindViewHolder method 这是我的适配器 Override public ViewHolder onCrea
  • 单击 RecyclerView 内的 ImageView 时更改图像资源

    每当我单击它时 单击图像 而不是项目 我都会尝试更改回收器视图内特定位置的设备图像资源 我尝试将 setOnClickListener 放入 onBindViewHolder 方法中 但只有最后一个项目受到影响 这是我的回收者视图 http
  • 房间数据库更改未触发观察者

    当房间数据库更改时 我试图更新 RecyclerView 但是 当数据库发生更改时 不会调用 MainActivity 中定义的观察者的 onChanged 方法 如果我让 DAO 返回 LiveData 而不是 List 并在 ViewM
  • RecyclerView 仅在某些项目之间添加分隔线

    我想在我的中添加分隔线RecyclerView Layout 我已经搜索了一段时间 但我只能找到利用的解决方案RecyclerView addItemDecoration 这会在所有项目之间添加分隔线 我可以创建一个只有一行的布局并将其添加
  • Android RecyclerView 空白

    我有一个 android 项目 我正在使用 Recycler 视图打印包含项目的列表 每个项目只有一个图像 并且在这些图像之间 android 正在创建一个很大的空白空间 我研究并看到即将将布局更改为wrap content 我更改了回收器
  • RecyclerView 单击将数据传递到新活动

    我正在制作一个包含三个选项卡的应用程序 每个选项卡都有一个带有两个文本的 recyclerview 我希望用户能够单击任何 recyclerview 项目 并且该项目中的文本应传递到新活动 这是应用程序外观的图像 https i stack
  • Recyclerview项目点击涟漪效果[重复]

    这个问题在这里已经有答案了 我正在尝试添加Ripple影响到RecyclerView的项目 我在网上查了一下 但找不到我需要的东西 我努力了android background归因于RecyclerView本身并将其设置为 android
  • 从数据库中删除项目后如何从 recyclerView 中删除项目

    我正在使用 recyclerView 来显示当用户单击每个项目的删除按钮时可以删除的项目列表 为了做到这一点 我使用了 recyclerview 适配器 我想要的是 从该 recycleView 适配器中 当用户单击某个项目的删除按钮时 会
  • Twowayview 滚动时自动添加内边距

    我在用双向视图 https github com lucasr twoway view在我的一个项目中 这是android的扩展回收者视图 https developer android com reference android supp
  • recyclerview 未连接适配器;跳过布局

    刚刚实施RecyclerView在我的代码中 替换ListView 一切正常 显示数据 但正在记录错误消息 15 25 53 476 E RecyclerView No adapter attached skipping layout 15
  • ItemTouchHelper - 在第一条跳转线之后强制放置

    我正在使用 ItemTouchHelper 和 ItemTouchHelper SimpleCallback 来允许用户重新排序垂直列表 Recycler View 拖放可以工作 但在第一条跳转线之后 即使我没有将手指从拖动的单元格上移开
  • Android EditText 和 SearchView:主要区别是什么(设计除外)?

    我需要在我的 Android 应用程序中实现一个搜索界面 该界面可以过滤多个RecyclerView里面一个ViewPager 我已经实现了EditText and SearchView小部件并尝试查看差异 我感兴趣的听众是 myEditT
  • Android:转换为位图时,回收器视图的宽度和高度必须> 0

    在 Sqlite 中存储文本和图像 并尝试将这些数据检索到 recyclerview 中 当将图像显示到 recyclerview 中时 它显示错误宽度和高度必须 gt 0 在将图像保存在 sqlite 中时 我将位图转换为字节 数据库助手
  • ConstraintLayout:无法缩放图像以适应 RecyclerView 中的比例

    我有一个带有 StaggeredGridLayoutManager 的回收器视图 在我有自定义项目 视图中 每个项目都定义为 ConstraintLayout 其中有一个图像应该具有恒定的长宽比 但图像仍然能够缩放以适应每个跨度的宽度 然后

随机推荐

  • 优化重片段着色器的性能

    我需要帮助优化以下一组着色器 Vertex precision mediump float uniform vec2 rubyTextureSize attribute vec4 vPosition attribute vec2 a Tex
  • 在复制构造函数中调用赋值运算符

    这种复制构造函数的实现有一些缺点吗 Foo Foo const Foo i foo this i foo 我记得 在一些书中建议从赋值运算符调用复制构造函数并使用众所周知的交换技巧 但我不记得为什么 是的 这是一个坏主意 所有用户定义类型的
  • 如何使用搜索命令搜索点字符?

    我正在尝试使用 Vim 中的搜索命令 Rs F T X R range F text to find T text to replace with X options 但是 当我想搜索 时 点字符 我遇到一些问题 任务 替换所有出现的 空格
  • Perl 诅咒::UI

    我正在尝试使用 Curses UI 库http search cpan org dist Curses UI http search cpan org dist Curses UI 在 Linux karmic 上构建 UI 我可以创建一个
  • 检测 Windows Kit 8.0 和 Windows Kit 8.1 SDK

    我正在为 Windows 平板电脑 Windows Phone 和 Windows 应用商店应用程序编写测试脚本 这些脚本主要适用于 Visual Studio 2012 和 Windows Kit 8 0 SDK Microsoft 似乎
  • Jupyter 笔记本:本地存储的 pdf 文档的超链接在 Chrome 中停止工作

    我有大量的 Jupyter Notebook 其中许多都有指向本地存储的 pdf 文档的超链接 不久前 这些链接在我的 iMac 上的 Chrome 中停止工作 单击链接时 会打开一个带有正确地址的新选项卡 但页面只是黑色 当我在 MacB
  • Squeak/Pharo Web 服务的微框架

    许多语言都有用于编写非常小的网站或 Web 服务的微框架 例如用于 Python 的 Flask 或用于 Ruby 的 Sinatra 在 Squeak 上 似乎没有任何类似的东西 伊利亚特 海边 和 AIDA 都非常重 只是提供了一点服务
  • 如何在vb.net中使用打开文件对话框指定路径?

    在我的应用程序的第一次启动中 我需要指定一个路径来保存一些文件 但在打开文件对话框中 我似乎必须选择要打开的文件 如何只指定文件夹而不打开文件 比如 C config 这是我的代码 If apppath Then Dim fd As Ope
  • 如何使用 SQL 查询更新表中的多行?

    I am new to SQL and C 如屏幕截图所示 我想通过仅插入数量 描述和价格值来更新 订单详细信息 表中的 3 行 订单 3 DataGridView2 我使用 Order Number 和 DateTime 的组合来使订单详
  • Promise.all 与 Firebase DataSnapshot.forEach

    我有几个 HTML 选择 下拉菜单 它们是从名为 states 的 Firebase 节点填充的 见下图 选择城市后 将触发以下函数并检索该城市中发生的所有会议 有一个单独的 会议 节点 每个会议都有各种键 值对 例如街道 时间等 我 认为
  • 使用 jquery 添加新 css 规则的最佳方法?

    我在网页上动态插入一些 html 在检测到用户的事件后 这个 html 需要一些 css 样式 我想知道使用 jQuery 最简洁的方法是什么 我不是网站开发人员 所以我无法将这些规则添加到原始CSS中 假设我已经插入了一些没有样式的 ht
  • django-pagination 可以每页进行多个分页吗?

    如果不能 那么是否有任何其他替代方案 Django 的本机分页或备用包 允许每页多个分页 我想显示大约 5 个对象的列表 每个对象都有自己的分页上下文 为了方便起见 这里是django 分页文档 http pypi python org p
  • 使用消费计划的 Azure 功能的 VNET 集成

    我的 azure 函数正在消耗计划上运行 它需要访问在 Azure VNET 上的 VM 上运行的资源 该资源无法通过 http 公开 除了切换到应用服务计划之外还有其他解决方案吗 目前来看 这是不可能的 VNet 集成功能需要标准 高级或
  • Windows 窗体的每像素碰撞检测算法

    我正在寻找每像素碰撞检测算法 方法Windows 窗体 我已经搜索过了 但只找到了一个 XNA 如下所示 这样的算法不是很符合Windows Forms的概念吗
  • 客户端IP地址的最大长度[重复]

    这个问题在这里已经有答案了 可能的重复 IPv6 地址的文本表示的最大长度 https stackoverflow com questions 166132 maximum length of the textual representat
  • 如何在 UPDATE 语句中使用用户定义的变量?

    我试图回答另一个所以问题 https stackoverflow com questions 18404726并突然面临以下问题 分数应分配给得分最高的 3 个 mrk 组 grp 每个班级 sec 得分最高的组得5分 排名第二的组得3分
  • Hibernate Embedded/Embeddable 不为空异常

    在拥有类中 Embedded private LatLon location 在引用的类中 Embeddable public class LatLon implements Serializable private double lat
  • 使用子查询更新

    我的查询有问题 我有一张巨大的桌子 上面有来自德国的邮政编码 名为 Postleitzahlen 还有另一张名为 Firmen 的公司表 结构是这样的 Firmen ID City State ZipCode Postleitzahlen
  • Tensorflow:在单次运行中分配多个变量值,无需重新计算其他表达式

    我是 Tensorflow 的新手 很抱歉 因为这似乎是一个非常基本的问题 但不幸的是我在 Google 上找不到任何内容 也许我使用了错误的关键字 我有一些从占位符派生的表达式 据我了解张量流的逻辑 以及一些需要在不重新计算 占位符 表达
  • RecyclerView 中的 NullPointEreException

    我尝试从 AsyncTask 中的服务器下载列表并将其放入 recyclerView 中 但是 我仍然在 RecyclerView 上收到 NullPointException 并且不知道为什么 我设置了 LayoutManager 和其他