CodeLearn Twitter 教程 TweetAdapter.java 上出现空指针错误

2024-03-14

我目前正在学习 Codelearn Twitter 教程,但我在下面的代码中收到一个空指针 - 有人可以帮助我吗?

public class TweetAdapter extends ArrayAdapter<Tweet> {

private LayoutInflater inflater;
private ArrayList<Tweet> tweetsList;

 public TweetAdapter(Activity activity, List<Tweet> tweets) {
     super(activity, R.layout.row_tweet, tweets);
     tweetsList = (ArrayList<Tweet>) tweets;
     inflater = activity.getWindow().getLayoutInflater();
}

@Override
 public View getView(int position, View convertView, ViewGroup parent){

    Tweet t = tweetsList.get(position);

    ***TextView title = (TextView) convertView.findViewById(R.id.tweetTitle);***
    TextView body = (TextView) convertView.findViewById(R.id.tweetBody);

    title.setText(t.getTitle());
    body.setText(t.getBody());

    return inflater.inflate(R.layout.row_tweet, parent, false);
    }

}


Your convertView可以为空。不能保证它不会为空。如果没有旧视图可以重用,它将为空

Change

public View getView(int position, View convertView, ViewGroup parent)
{

Tweet t = tweetsList.get(position);

***TextView title = (TextView) convertView.findViewById(R.id.tweetTitle);***
TextView body = (TextView) convertView.findViewById(R.id.tweetBody);

title.setText(t.getTitle());
body.setText(t.getBody());

return inflater.inflate(R.layout.row_tweet, parent, false);
}

to

public View getView(int position, View convertView, ViewGroup parent)
{
  if(convertView==null)
    convertView = inflater.inflate(R.layout.row_tweet, parent, false);

  Tweet t = tweetsList.get(position);

  ***TextView title = (TextView) convertView.findViewById(R.id.tweetTitle);***
  TextView body = (TextView) convertView.findViewById(R.id.tweetBody);

  title.setText(t.getTitle());
  body.setText(t.getBody());

  return convertView;
}

你必须检查是否convertView is non null或不是,如果是null你需要在其中膨胀你的布局。

你还应该看看ViewHolder模式 http://developer.android.com/training/improving-layouts/smooth-scrolling.html

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

CodeLearn Twitter 教程 TweetAdapter.java 上出现空指针错误 的相关文章

随机推荐

  • 当我单击可扩展子元素时,如何获取 EditBox 和 RadioButton 的每个值?

    我有一个可扩展的 ListView 其中每个父视图都有一个子视图 在子视图中 我有一个子子元素 EditText TextView 和 RadioButton 子元素在单选按钮上单击时具有不同的值 并且在输入后编辑文本值 类别活动 java
  • ACCESS/SQL:如何同时插入/更新?

    这是我的情况 首先 我不是在关系数据库上工作 我只是使用访问作为操作数据的简单方法 目前 我有很多桌子 一个主表 我们称之为 MAIN 还有大约 10 个其他表 我们可以称之为 X1 X2 X3 等 X1 表包含具有 X1 属性的项目 X2
  • 在.NET v4.0中解析MP3文件

    如何解析 MP3 文件以获取其所有属性 另外如何编辑MP3文件的属性 NET v4 0 中有可用的类吗 这些属性称为 ID3 标签 我认为 NET 框架不负责提供对它们的阅读 这是来自 SourceForge 的一些代码 http sour
  • 在 MacOS X 上的 GHCi 中工作的 Haskell 图形库

    是否存在满足以下要求的 Haskell 图形库或绑定到外部库 可以使用从ghci 即我不必链接并重新启动程序 适用于 MacOS X 与 1 结合使用很棘手 可以制作简单的矢量图形 线条 多边形 简单的填充和描边 可以将位图图像放在屏幕上
  • 在lisp中,如何使用floor函数返回的第二个值?

    当我这样做时 4楼3 我得到了 1 1 3 但我该如何使用这 1 3 呢 例如 您可以使用将其绑定到变量multiple value bind multiple value bind quot rem floor 4 3 format t
  • 移动 Safari 与主屏幕 Web 应用程序

    我正在为 iOS 开发一个 web 应用程序 我注意到在移动 safari 上运行和从主屏幕运行之间存在一些奇怪的事情 是否有任何资源可以提供在模式之间切换的通用接口 如果没有 是否有任何资源详细说明这两种模式之间的所有差异和陷阱 我遇到过
  • 将数据从节点传递到jade?

    问题是我渲染视图并发送一些数据 console log products shows an array res render seller sell shop id req user shop id products products 我将
  • Spring Data Rest - 如何从页面中删除元素?

    我的项目中有以下 REST 控制器方法 RequestMapping method GET value applications produces MediaType APPLICATION JSON VALUE public Respon
  • GitHub Probot:错误 probot:签名与事件负载和秘密不匹配

    我正在尝试使用构建 GitHub 应用程序机器人框架 https probot github io 这是文件的内容index js module exports robot gt robot log Yay the app was load
  • docker-compose restart 连接池已满

    我和我的团队正在使用 docker compose 将我们的一些基础设施转换为 docker 一切似乎都工作得很好 我遇到的唯一问题是重新启动它给我一个连接池已满错误 我正在尝试找出造成这种情况的原因 如果我删除 2 个容器或 1 个完整设
  • 如何强制 Ruby 尊重 Net::HTTP 标头中的下划线

    我如何强制 Ruby 尊重 a 中的下划线Net HTTP header uri URI parse url headers api key my private key request Net HTTP Post new uri head
  • 删除node.js中的几个文件

    删除node js中的多个文件的最佳方法是什么 function deleteFiles files callback var files file1 js file2 jpg file3 css deleteFiles files cal
  • 如何在 M1 mac 上安装自制软件

    我刚买了一台新 Mac M1 Macbook pro 我正在尝试安装自制程序 但每次我完成安装时 它都会告诉我它没有写入路径 然后当我尝试建议的任何内容添加到路径 什么也没有发生 终端或其他任何东西根本无法识别该命令 就好像它没有安装一样
  • 在 VBE 中无法查看 Excel 工作表

    我正在使用其他人创建的 Excel 文件 一张包含宏的工作表似乎受密码保护 但我不明白的是我无法在工作表列表下的 VBE 中看到它 工作表选项卡在 Excel 中可见 但我看不到内容 有没有办法在VBE中取消隐藏它 一张包含宏的工作表 这是
  • Rails:Watir 中的代理身份验证(Chrome 驱动程序)

    我尝试添加代理身份验证chrome在 watir 上运行的 webdriver 如下所示 require watir proxies proxy server 185 264 167 184 63109 proxy auth usernam
  • 难以从 iPhone X 上的 2D 区域获取面部标志点的深度(SceneKit/ARKit 应用程序)

    我正在使用 iPhone X 上的前置摄像头运行面部标志检测 并且正在努力获取面部标志的 3D 点 VNFaceLandmarkRegion2D 仅提供图像坐标 X Y 我一直在尝试使用ARSCNView hitTest or ARFram
  • jQuery 如何返回一个数组并且仍然是一个 jQuery 对象?

    我试图重现 jQuery 1 7 1 的对象结构 以更好地理解它是如何工作的 我有以下代码 function window undefined var document window document navigator window na
  • PDF 到 Excel 转换将每个 pdf 页面放在不同的工作表中

    我正在尝试将 pdf 文件 有 16 页 转换为 Excel 文件 以便运行我在 Excel 中已有的程序 我已经有一个将 pdf 转换为 excel 的代码 但我希望宏将 pdf 文件的每个单独页面放入我的 excel 文件中的不同工作表
  • 伪造 WPF 操作事件

    我想使用鼠标 键盘伪造操纵 或触摸 事件 当我尝试使用以下方式引发事件时 RoutedEventArgs e new RoutedEventArgs ManipulationStartedEvent this RaiseEvent e 给我
  • CodeLearn Twitter 教程 TweetAdapter.java 上出现空指针错误

    我目前正在学习 Codelearn Twitter 教程 但我在下面的代码中收到一个空指针 有人可以帮助我吗 public class TweetAdapter extends ArrayAdapter