无法使用自定义适配器理解 NullPointerException

2023-12-07

我正在尝试创建一个列表视图,它作为可以显示 html 内容的 TextView、WebView 和其他基本 TextView。我尝试扩展 SimpleAdapter 但我遇到了这个问题,如果有人能指出我正在做的错误,我会很高兴。

在onCreate方法中

 ArrayList<HashMap<String, String>> mylist= resultfromXmlparser();

 adap = new MyAdapter(TourLandingPage.this, mylist, R.layout.row,
            new String[] {"Name", "desc","Duration","Price","imgurl"},  new int[]
            {R.id.productname,R.id.des,R.id.duration,R.id.pricefrom,R.id.photo});

setListAdapter(adap);


My custom Adapter looks like this

 private class MyAdapter extends SimpleAdapter {

             ArrayList<HashMap<String,String>> elements;
             Context ctx;
             public MyAdapter(Context context, ArrayList<HashMap<String,String>> mylist,int textViewResourceId,String[] names,int[] resouceid) {
             super(context, mylist,textViewResourceId, names,resouceid);
             this.elements=mylist;
             this.ctx=context;

             }
             @Override
             public int getCount() {
                  return elements.size();
                 }
             @Override
             public Object getItem(int position) {
                  return elements.get(position);
              }
            @Override
            public long getItemId(int position) {
                  return position;
                 }


                  @Override
           public View getView(int position, View convertView, ViewGroup parent) {
             RelativeLayout rowLayout;
                    if (convertView == null) {
                     rowLayout = (RelativeLayout) 
                         LayoutInflater.from(ctx).inflate(R.layout.rowfor_tourlist, parent, false);

               } else {

                rowLayout = (RelativeLayout) convertView;
                     }


                  TextView in = (TextView)rowLayout.findViewById(R.id.introduction);
                  TextView du = (TextView)rowLayout.findViewById(R.id.duration);
                  TextView pf = (TextView)rowLayout.findViewById(R.id.pricefrom);
                  TextView pn = (TextView)rowLayout.findViewById(R.id.productname);
                  WebView wv=(WebView)rowLayout.findViewById(R.id.photo);  
                  in.setText(Html.fromHtml(mylist.get(position).get("desc")));
                  du.setText(mylist.get(position).get("Duration"));
                  pf.setText(mylist.get(position).get("Price"));
                  pn.setText(mylist.get(position).get("Name"));
                  wv.getSettings().setJavaScriptEnabled(true);
                  wv.loadUrl(mylist.get(position).get("imgurl"));


                 return convertView;
             }         
         }//class

我的 row.xml 文件看起来像

  RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"

  TextView 
       android:id="@+id/productname"
       ......

  LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="60dip"
         android:layout_margin="5dip"
         android:layout_below="@id/productname"
         android:orientation="horizontal"
         android:id="@+id/lay1"

         WebView 
          android:id="@+id/photo"
          ....
         TextView 
           android:id="@+id/introduction"
           ......
   LinearLayout

   TextView 
      android:id="@+id/duration" 
      ....
   TextView 
     android:id="@+id/pricefrom" 
      ..... 

RelativeLayout

我得到的错误是

04-28 19:46:17.749: ERROR/AndroidRuntime(976): Uncaught handler: thread main exiting due to uncaught exception
04-28 19:46:17.769: ERROR/AndroidRuntime(976): java.lang.NullPointerException
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.ListView.setupChild(ListView.java:1693)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.ListView.makeAndAddView(ListView.java:1671)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.ListView.fillDown(ListView.java:637)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.ListView.fillFromTop(ListView.java:694)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.ListView.layoutChildren(ListView.java:1521)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.AbsListView.onLayout(AbsListView.java:1113)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.View.layout(View.java:6831)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1108)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.onLayout(LinearLayout.java:920)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.View.layout(View.java:6831)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.View.layout(View.java:6831)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.View.layout(View.java:6831)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.View.layout(View.java:6831)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.View.layout(View.java:6831)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.ViewRoot.performTraversals(ViewRoot.java:996)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.os.Looper.loop(Looper.java:123)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at android.app.ActivityThread.main(ActivityThread.java:4338)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at java.lang.reflect.Method.invokeNative(Native Method)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at java.lang.reflect.Method.invoke(Method.java:521)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-28 19:46:17.769: ERROR/AndroidRuntime(976):     at dalvik.system.NativeStart.main(Native Method)
04-28 19:46:17.789: INFO/Process(52): Sending signal. PID: 976 SIG: 3
04-28 19:46:17.799: INFO/dalvikvm(976): threadid=7: reacting to signal 3
04-28 19:46:17.829: INFO/dalvikvm(976): Wrote stack trace to '/data/anr/traces.txt'

正如我在上面的代码中看到的,您的问题出在“return ConvertView;”中。线。您刚刚返回了一个输入视图,而不是膨胀的视图。

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

无法使用自定义适配器理解 NullPointerException 的相关文章

随机推荐

  • 如何测量应用程序或进程的实际内存使用情况?

    如何测量 Linux 中应用程序或进程的内存使用情况 摘自博客文章了解 Linux 上的内存使用情况 ps不是用于此目的的准确工具 Why ps是错的 取决于你如何看待它 ps不报告进程的实际内存使用情况 它真正做的是显示每个进程将占用多少
  • TFS 2015:发布工件 - “任务已取消”

    不久之后 我在运行构建任务 发布工件 时收到 任务已取消 tfs 服务器现在已经运行了几周 我在执行这些任务时从未遇到过问题 我通过删除构建输出文件夹解决了这个问题 但不幸的是这个 解决方法 不再起作用 我尝试更改工件名称 希望这可以改变一
  • 如何使用正则表达式从字符串中删除最后一个逗号和空格(如果有)?

    我在 C 应用程序中有一个字符串 想知道检查最后两个字符是否是的正确方法是什么 逗号和空格 并使用正则表达式删除它们 如果是 没有正则表达式的工作解决方案 string str dfsf if str EndsWith str str Re
  • Boost.Process - 如何让进程运行一个函数?

    所以我尝试做一些事情升压过程尽管它尚未被 Boost 发行版接受 最简单的程序看起来像 include
  • 读取用户会话时出现 HttpRuntime CacheInternal NULL 引用异常(反射)

    在我们的 Windows 服务器 2008R2 2012 上进行一些更新后 Asp net 应用程序抛出错误 var obj 1 typeof HttpRuntime GetProperty CacheInternal BindingFla
  • 如何调用编译后的函数体?

    当我掌握一个代码对象时 通过内部结构 例如 func code or code 在Python 3 中 有什么办法calling这段代码 简单地调用它是行不通的 def f pass f func code 结果是 Traceback mo
  • 在 .NET MVC 4.0 URL 结构中强制使用连字符

    我正在专门寻找一种自动连接 CamelCase 操作和视图的方法 也就是说 我希望不必实际重命名我的视图或向站点中的每个 ActionResult 添加装饰器 到目前为止 我一直在使用routes MapRouteLowercase 如图所
  • 扩展多边形的范围 - Google Maps V3 Javascript API

    我的目标是检测标记是否位于形状奇怪的多边形对象内 想想 25 个不同的点 我注意到 LatLngBounds 属性仅包含两组 LatLng 即使在使用 extend 函数之后也是如此 例如 34 347971491244955 122 40
  • const 引用的默认参数中使用的统一初始值设定项

    这是合法的 c 0x 语法吗 class A public void some function const std set
  • Java 中使用同步块的并发未给出预期结果

    下面是一个简单的 java 程序 它有一个名为 cnt 的计数器 该计数器会递增 然后添加到名为 monitor 的列表中 cnt 由多个线程递增 值由多个线程添加到 monitor 在方法 go 的末尾 cnt 和 monitor siz
  • 如何打开包含图像数组的 fancybox

    我在 JS 中有一组图像 ulrs photos img1 jpg img2 jpg 我正在使用 Fancybox 2 如何打开包含数组图像的 fancybox start slides fancybox openEffect elasti
  • 你能用 JavaScript 编写嵌套函数吗?

    我想知道 JavaScript 是否支持在另一个函数中编写函数或嵌套函数 我在博客中读到 这真的可能吗 事实上 我已经使用过这些 但不确定这个概念 我对此真的不清楚 请帮忙 这真的可能吗 Yes function a x lt functi
  • 如何获取javax.comm API?

    我最近下载了一个项目SMS正在发送 但是当我尝试编译代码时 它给出了在线错误import javax comm 谁能告诉我在哪里可以找到javax comm以及放置在哪里 这样就不会出现编译错误 Oracle Java 通信 API 参考
  • 从一个枚举状态移动到下一个状态并循环

    我只有具有 3 种模式 ledOn ledBlink ledOFF 的枚举器 并且有一个可变模式来跟踪特定对象的模式 例如 我有一个 LED 以 ledOn 模式启动 我想在 5 秒后移动到下一个元素 即 ledBlink 然后移动到 le
  • Django self.cleaned_data Keyerror

    我正在编写一个 Django 网站 并且正在编写自己的表单验证 class CreateJobOpportunityForm forms Form subject forms CharField max length 30 start da
  • UIButton 中图像下的标签

    我正在尝试创建一个按钮 该按钮在图标下方有一些文本 有点像应用程序按钮 但它似乎很难实现 任何想法如何让文本显示below图像与UIButton 或者您可以只使用此类别 ObjC interface UIButton VerticalLay
  • 如何解决“react-native start”错误

    我刚刚安装了 node js 和 cli 安装了node js 安装了react native cli npm g react native cli 并创建了一个 新项目 react native init new project 在 ne
  • 使用 jQuery 将三个重复的 div 组合并为一个

    我这里还有另一个问题 我有几个重复的 div 组 一组有3个不同班级的分区 我需要做的是将其包装到一个 容器 中 当我使用wrapAll时 它会将所有内容包装到一个div中 这是我的 html div class bb box tl div
  • 使用jquery ajax将javascript对象转为php

    我有一个数组或一个 javascript 对象 我创建如下 arr arr length obj其中 obj 是一个经典的 JSON 字符串 例如 id 1 So arr似乎是一个 JavaScript 对象数组 我可以这样访问它 arr
  • 无法使用自定义适配器理解 NullPointerException

    我正在尝试创建一个列表视图 它作为可以显示 html 内容的 TextView WebView 和其他基本 TextView 我尝试扩展 SimpleAdapter 但我遇到了这个问题 如果有人能指出我正在做的错误 我会很高兴 在onCre