Android 获取listview数据 然后赋值给popupwindow用于显示报空指针

问题描述

Android 获取listview数据 然后赋值给popupwindow用于显示报空指针

能得到数据但是给Textview赋值却报空指针!
下边贴代码。
gv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {

// WindowManager.LayoutParams lp=getWindow().getAttributes();
// lp.alpha = 0.4f;
// getWindow().setAttributes(lp);

                food= (FoodInfo)data.get(position); // 数据类获取数据

                Toast.makeText(getApplicationContext(),
                        food.getFoodName(),
                        Toast.LENGTH_SHORT).show(); //这里可以正常显示,说明得到了数据

                TextView name=(TextView) findViewById(R.id.popup_tv1);//popupwindow
                name.setText(food.getFoodName()); //  setText 报空指针

                initPopuWindow1(arg0); // 加载弹出框

        }

解决方案

先加载TextView name所在的布局view,然后这样得到你的name,TextView name=(TextView)view.findViewById(R.id.popup_tv1);

解决方案二:

你自己调试一下,两个地方可能为null
name和food,你看看是不是

解决方案三:

最好用arg3,position,如果你有headerview的话,这个postion会有问题,而且position从1开始,你要用也要position-1

解决方案四:

我已经找到原因了,。 我的name对应的R.id.popup_tv1 不在 当前类对应的layout ,activity_main 中 而是我contentView1 = mLayoutInflater.inflate(R.layout.popupwindow_food, null); 添加的自定义布局中, 这样我该怎样把值传过去啊!

解决方案五:

09-17 12:09:04.231: E/AndroidRuntime(28241): FATAL EXCEPTION: main
09-17 12:09:04.231: E/AndroidRuntime(28241): Process: com.example.shaomapapptest, PID: 28241
09-17 12:09:04.231: E/AndroidRuntime(28241): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
09-17 12:09:04.231: E/AndroidRuntime(28241): at com.sm.activity.MainActivity$3.onItemClick(MainActivity.java:193)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.widget.AdapterView.performItemClick(AdapterView.java:310)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.widget.AbsListView.performItemClick(AbsListView.java:1285)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3375)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.widget.AbsListView$3.run(AbsListView.java:4354)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.os.Handler.handleCallback(Handler.java:815)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.os.Handler.dispatchMessage(Handler.java:104)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.os.Looper.loop(Looper.java:194)
09-17 12:09:04.231: E/AndroidRuntime(28241): at android.app.ActivityThread.main(ActivityThread.java:5691)
09-17 12:09:04.231: E/AndroidRuntime(28241): at java.lang.reflect.Method.invoke(Native Method)
09-17 12:09:04.231: E/AndroidRuntime(28241): at java.lang.reflect.Method.invoke(Method.java:372)
09-17 12:09:04.231: E/AndroidRuntime(28241): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
09-17 12:09:04.231: E/AndroidRuntime(28241): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

这是log

解决方案六:

你可以用LayoutInflate把你那个popuptv1所在的layout布局文件加载到当期类里面,然后再去查找相应的控件,在赋值试试,。

时间: 2024-08-02 19:28:46

Android 获取listview数据 然后赋值给popupwindow用于显示报空指针的相关文章

android中ListView数据刷新时的同步方法

  本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Android实现ListView数据动态加载的方法_Android

本文实例讲述了Android实现ListView数据动态加载的方法.分享给大家供大家参考,具体如下: list.setOnScrollListener(new OnScrollListener() { //添加滚动条滚到最底部,加载余下的元素 public void onScrollStateChanged(AbsListView view, int scrollState) { // if (scrollState == OnScrollListener.SCROLL_STATE_IDLE)

请求-关于Android获取JSON数据的问题,直接上代码了

问题描述 关于Android获取JSON数据的问题,直接上代码了 打开URL后的数据: 写的测试类: package com.zb.json_text; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayL

Android实现ListView数据动态加载的方法

本文实例讲述了Android实现ListView数据动态加载的方法.分享给大家供大家参考,具体如下: list.setOnScrollListener(new OnScrollListener() { //添加滚动条滚到最底部,加载余下的元素 public void onScrollStateChanged(AbsListView view, int scrollState) { // if (scrollState == OnScrollListener.SCROLL_STATE_IDLE)

迭代-从数据库中获取的数据在jsp页面上的显示问题

问题描述 从数据库中获取的数据在jsp页面上的显示问题 做一个项目的时候,从数据库获取数据,用迭代的方式在前台显示,只能显示一部分的信息,就好像是有一个固定空间似的,只要内容超出了这个空间,就不能显示了,怎么解决? 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri=&

ajax-关于extjs获取json数据,后台错误时怎么显示错误页面

问题描述 关于extjs获取json数据,后台错误时怎么显示错误页面 struts2返回json数据错误时,怎么捕获异常.跳转到错误页面.我写了个拦截器.session过期时跳转到login.jsp.可是他却直接给我弹出一个login.jsp源代码.查看网上都说struts的拦截器无法捕捉ajax的异常.那我又该如何做呢?改struts核心文件?求大神赐教! 解决方案 你可以设置响应头status代码为500,这样客户端才能捕获到错误执行failure回调,要不是200响应头会进入Ext.aja

Android在动画结束的onAnimationEnd中移除视图报空指针

问题描述 Android在动画结束的onAnimationEnd中移除视图报空指针 我在通过按钮删除一个视图,使用了淡出动画,在动画结束的监听中,删除视图removeView,报了空指针,但是用了handler.post后就好了,为什么呢? 解决方案 应该是异步操作中不能直接操作UI组件,要通过handler 解决方案二: debug 看一下控制空指针什么 解决方案三: 要么贴一下源码,要么贴一下日志,这样只能瞎猜,不好不好.

【android初级】之Android获取网页数据的方法总结

本文总结了三种获取网页数据的代码,是自己在用的时候随手整理出来的.此处仅贴出函数段,不贴出import了,用的时候可以用eclipse自动import一下就行了.函数的详细用途描述请看代码中注释.调用的时候请对应函数需要的参数. //第一种 /**获取参数(ArrayList<NameValuePair> nameValuePairs,String url)后post给远程服务器  * 将获得的返回结果(String)返回给调用者  * 本函数适用于查询数量较少的时候 */ public St

Android之ListView异步加载图片且仅显示可见子项中的图片

折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整实例都没看到,只有自己一点点研究了,总体感觉 android 下面要显示个图片真不容易啊. 项目主要实现的功能: 异步加载图片 图片内存缓存.异步磁盘文件缓存 解决使用 viewHolder 后出现的图片错位问题 优化列表滚动性能,仅显示可见子项中的图片 无需固定图片显示高度,对高度进行缓存使列表滚