NullPointerException 自定义列表视图适配器

2024-04-27

你好 stackoverflow 社区,

我在扩展 BaseAdapter 的自定义适配器类的 getView 方法中得到了一个 NPE。我希望你可以帮助我。

这是我的 getView 方法:

@Override
public View getView(int pos, View convertView, ViewGroup viewGroup) {
    if(convertView==null){
        LayoutInflater inflater = (LayoutInflater)context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.row, null);
    }

    TextView datetv = (TextView) convertView.findViewById(R.id.date);
    TextView valuetv = (TextView) convertView.findViewById(R.id.value);
    TextView cattv = (TextView) convertView.findViewById(R.id.cat);

    if(values.get(pos)>VALUE_MIN&&values.get(pos)<VALUE_MAX){
        datetv.setTextColor(context.getResources().getColor(R.color.Good));
        valuetv.setTextColor(context.getResources().getColor(R.color.Good));
        cattv.setTextColor(context.getResources().getColor(R.color.Good));
    }
    else{
        datetv.setTextColor(context.getResources().getColor(R.color.Bad));
        valuetv.setTextColor(context.getResources().getColor(R.color.Bad));
        cattv.setTextColor(context.getResources().getColor(R.color.Bad));
    }

    datetv.setText(dates.get(pos));
    valuetv.setText(Double.toString(values.get(pos)));
    cattv.setText(cats.get(pos));

    LinearLayout l = (LinearLayout) convertView.findViewById(R.id.notelayout);
    l.setFocusableInTouchMode(false);
    l.setFocusable(false);
    l.setOnClickListener(this);
    l.setId(pos);

    return convertView;
}

这是 row.xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"

>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="140dip"
    android:layout_height="wrap_content" 
    android:padding="4dip"
    >
<TextView 
android:id="@+id/date" 
android:layout_width="fill_parent" 
android:layout_height="24dip" 
android:textSize="15dip"
android:gravity="left"  android:paddingLeft="6dip" 
android:layout_weight="1" />
<TextView 
android:id="@+id/cat" 
android:layout_width="fill_parent" 
android:layout_height="24dip" 
android:textSize="15dip"
android:gravity="left"  android:paddingLeft="6dip"  
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_weight="1"
    android:gravity="center"
    android:padding="4dip"
    >
    <TextView 
android:id="@+id/value" 
android:layout_width="fill_parent" 
android:layout_height="48dip" 
android:textSize="40dip"
android:gravity="center"
/>
</LinearLayout>
<LinearLayout
    android:id="@+id/notelayout"
    android:orientation="vertical"
    android:layout_width="50dip"
    android:layout_height="wrap_content" 
    android:gravity="right"
    android:layout_gravity="center"
    android:padding="4dip"
    >
<ImageView
android:id="@+id/note" 
android:layout_width="wrap_content" 
android:layout_height="48dip" 
android:gravity="center"
android:src="@drawable/papiertje"
android:scaleType="centerInside"/>
</LinearLayout>
</LinearLayout>

这是我收到的错误:

01-30 00:34:31.772: ERROR/AndroidRuntime(497): FATAL EXCEPTION: main
01-30 00:34:31.772: ERROR/AndroidRuntime(497): java.lang.NullPointerException
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at com.yellos.android.glucose.ListViewAdapter.getView(ListViewAdapter.java:85)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.AbsListView.obtainView(AbsListView.java:1294)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.ListView.measureHeightOfChildren(ListView.java:1198)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.ListView.onMeasure(ListView.java:1109)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.View.measure(View.java:8171)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:696)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:306)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.View.measure(View.java:8171)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.View.measure(View.java:8171)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.View.measure(View.java:8171)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.View.measure(View.java:8171)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.os.Looper.loop(Looper.java:123)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at android.app.ActivityThread.main(ActivityThread.java:4627)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at java.lang.reflect.Method.invokeNative(Native Method)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at java.lang.reflect.Method.invoke(Method.java:521)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-30 00:34:31.772: ERROR/AndroidRuntime(497):     at dalvik.system.NativeStart.main(Native Method)

85号线是l.setFocusableInTouchMode(false);


去掉检查条件转换视图==空 in 获取视图()

直接写Layout inflation代码,不用封装进去if

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

NullPointerException 自定义列表视图适配器 的相关文章

随机推荐

  • 谷歌分析 SDK iOS10

    我已经从 cocoa pod 版本 3 14 安装了 Google Analytics id
  • 如何在Spring boot中使用注释来使用参数解析器?

    我想用argument resolvers在 Spring 启动中 我该怎么办 它是在 XML 中完成的 如下所示
  • 快速移动的球与鼠标控制的球拍的碰撞检测问题

    在统一中 我有一个应该击球的球拍 并且球拍直接由鼠标控制 即鼠标使用鼠标轴移动球棒并使用 translate 函数移动球拍 我预计 Unity3d 的物理特性不会直接通过鼠标正确地转换球拍的运动并相应地影响球 我必须编写一些自定义的内容 结
  • 为什么负边距会影响我的页面宽度?

    请参考以下内容example http jsfiddle net wdm954 Fcznp 9 其中 200px 宽的外部 div 旨在确定我们的页面宽度 它包含一个 400px 宽的内部 div 但左 右负边距为 100px 我预期的最终
  • C++ / C++11 中的函数组合

    我目前正在使用 C 11 编写一些需要大量函数组合的密码算法 我必须处理两种类型的构图 自行编写一个函数 次数可变 数学上 对于某个函数 F F n x F n 1 o F x F n 1 F x 将不同的函数组合在一起 例如 对于某些相同
  • Jackson @JsonRawValue 获取地图的值

    我有以下 Java bean 类 使用 Jackson 将其转换为 JSON public class Thing public String name JsonRawValue public Map content new HashMap
  • 将 asp.net 5 测试放在单独的程序集中

    我使用 Microsoft AspNet TestHost 来托管 xunit 集成测试 只要测试与 asp net 5 solution 位于同一项目中 一切都会正常进行 但我想将测试放入单独的程序集中 将它们与解决方案分开 但是 当我尝
  • 如何处理 pcntl_fork(): 错误 35?

    我有 php7 CLI 守护进程 它连续解析文件大小超过 50M 的 json 我试图使用 pcntl fork 的单独进程将每 1000 个解析数据条目保存到 mysql 对于约 200k 行 它工作得很好 然后我得到pcntl fork
  • “修补”rails 渲染函数来编辑默认选项

    当我在 Rails 中渲染 xml 时 我总是想要 dasherize gt false 选项 有没有办法将其设置为应用程序范围的默认值 当然无需修改 Rails 源代码 也许一个渲染函数以某种方式优先于第一个函数 然后使用此选项调用它 这
  • 如何隔离特定的颠覆修订版?

    我有一个已提交给 SVN trunk 的修订版 我想回滚它 但是 我想以某种方式保留更改 例如分支甚至补丁文件 有什么建议么 反向合并 我认为这就是这个术语 提交 仅此而已 对于 反向合并 部分 TSVN 有一个很酷的功能 称为 恢复到此版
  • 什么时候使用nonlocal关键字? [复制]

    这个问题在这里已经有答案了 我不明白为什么我可以在这里使用系列变量 def calculate mean series def mean new value series append new value total sum series
  • 在 Node.js 中获取父目录名称

    我正在使用 Node js 并且我想获取某个目录的父目录名称 文件 我有文件 test1 folder1 FolderIWant test txt 我想要得到 FolderIWant 我努力了 var path require path v
  • Apache Poi 无法读取工作表名称

    我们在通过 Apache Poi 读取 Excel 工作表时遇到了一个奇怪的错误 我们使用的是5 0版本 该代码以前可以工作 但现在已停止在我们所有的生产环境中工作 它在本地测试时仍然有效 因此事实证明这很难调试 问题是我们返回了空工作表名
  • powershell中的&符号是什么意思?

    tool C Program Files gs gs9 07 bin gswin64c exe tool q dNOPAUSE sDEVICE tiffg4 param r300 pdf FullName c quit 有人可以向我解释这是
  • ...未定义引用...collect2:ld返回1退出状态[重复]

    这个问题在这里已经有答案了 我在编译时遇到一些错误 我不明白为什么 我的 heapsort h 应该有导出类型吗 堆排序 c include
  • DataGridTemplateColumn 内的绑定命令

    我使用命令将视图 包括 XAML 附加到我的 ViewModel 当单击 DataGrid 行上的按钮时 我需要调用命令 我正在为此使用行为 常规命令也有同样的问题 当我单击 DataGrid 上的按钮时 我的命令不会被触发 为了说明问题
  • 通过selenium在firefox中打开私有模式

    实际上我想通过selenium打开firefox浏览器的隐身 私密模式 但每次我尝试时都是以正常模式打开firefox 经过一番谷歌搜索后 我得到了这段代码 我用它通过 selenium 在 Firefox 中打开私有模式 但它不起作用 F
  • 应用因 iCloud 备份标记而被拒绝

    我的应用程序有一些应用内购买 可将视频内容下载到 Documents 文件夹 我最近提交了应用程序的更新 但被拒绝了 因为我没有将视频文件标记为不备份到 iCloud 我成功地实现了标记 但我仍然对苹果文档中的这一声明感到困惑 重要 新的
  • Python 替换嵌套 JSON 中的 None 值

    我一直在尝试替换下面 JSON 字典中的 None 值 我将如何遍历这个 json 并将 None 值替换为空字符串 我很难理解如何遍历嵌套 json 如果有人能帮我解决这个问题 我会很高兴 下面的嵌套 json 示例 或者在 python
  • NullPointerException 自定义列表视图适配器

    你好 stackoverflow 社区 我在扩展 BaseAdapter 的自定义适配器类的 getView 方法中得到了一个 NPE 我希望你可以帮助我 这是我的 getView 方法 Override public View getVi