2 liangjifanzhuan2 liangjifanzhuan2 于 2016.03.21 20:58 提问

android 中自定义GridView的使用

楼主最近在学习安卓,用和ListView类似的方法实现Gridview的时候出现了问题。希望高手能指点一二。

aty_using_gridview.xml

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

    <GridView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/gridView"
        android:numColumns="3"/>
</LinearLayout>

grid_view_cell.xml

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="100dp"
    android:layout_height="100dp">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/img_grid_view" />
</FrameLayout>

这个是Activity

 public class AtyUsingGridView extends Activity {


    private GridView  gridView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.aty_using_gridview);


        ImageGridViewAdapter adapter=new ImageGridViewAdapter(this);
        gridView.findViewById(R.id.gridView);
        gridView.setAdapter(adapter);
    }
}


这个是adapter

 public class ImageGridViewAdapter extends BaseAdapter {
        private Context context=null;
        private  ImageGridViewData data[]= {
                new ImageGridViewData( R.drawable.img2),
                new ImageGridViewData(R.drawable.img2),
                new ImageGridViewData( R.drawable.img2),
        };

        public ImageGridViewAdapter(Context context){
            this.context=context;
        }
        public Context getContext() {
            return context;
        }

        @Override
        public int getCount() {
            return data.length;
        }

        @Override
        public ImageGridViewData getItem(int i) {
            return data[i];
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            FrameLayout fl=null;
            if(view!=null){
                fl=( FrameLayout)view;
            }else{
                fl= ( FrameLayout) LayoutInflater.from(getContext()).inflate(R.layout.grid_view_cell,null);
            }
            ImageGridViewData data=getItem(i);
            ImageView imgID=(ImageView)fl.findViewById(R.id.img_grid_view);

            imgID.setImageResource(data.imgID);

            return fl;
        }
    }

运行出现错误如下
Unable to start activity
java.lang.NullPointerException

我这有什么错误,希望高手给指出啊,万分感谢。

3个回答

lxk_1993
lxk_1993   Rxr 2016.03.22 09:33
已采纳

gridView.findViewById(R.id.gridView); 这里你没有实例化gridview

改为gridview = gridView.findViewById(R.id.gridView)

qq_17250009
qq_17250009   2016.03.21 21:26

gridView.findViewById(R.id.gridView);
改成 gridView = (GridView)findViewById(R.id.gridView);

qq_27578023
qq_27578023   2016.06.04 16:27

gridView.findViewById(R.id.gridView); 这里你没有实例化gridview

改为gridview = gridView.findViewById(R.id.gridView)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android RecyclerView中实现自定义GridView的方式(实现不同item)
中文网站上,有关RecyclerView的文章实在是太少了,初次接触到RecyclerView,我便发现了它的强大之处,并且深深的爱上了它,下面我写一点在我工作中遇到的问题,并用RecyclerView得到了解决。 控件理解:RecyclerView,顾名思义,仅是提供了一个视图回收机制的控件,它可以以任何方式呈现在大家面前,只要满足大量数据与视图绑定,且视图需要滚动回收条件的,我们都可以使用它
Android常用控件之GridView使用BaseAdapter
我们可以为GridView添加自定义的Adapter,首先看下用自定义Adapter的显示效果 在布局文件main.xml文件中定义一个GridView控件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.androi
安卓:自定义适配器实现GridView图文混排
安卓:自定义适配器实现GridView图文混排
Android开发深化之关于自定义GridView控件的实现
在进行Android开发软件时我们常常会用到ListView和GridView,在Android开发时系统会自带ListView,GridView功能,但往往满足不了我们当时的开发要求。这个时候我们需要自己定义一个ListView或者GridView,扣丁Android培训视频中就有自定义的一个左右滑动删除item的例子,大家有兴趣的可以去看看。Android使用Scroller实现绚丽的List
Android GridView控件自定义
虽然Android已自带了GridView,但是,却不够灵活,同时也不能自由添加控件,因此,本人通过需要进一步封装,来实现Android自定义GridView控件,达到自己需要的效果。 我们看一下最终所需要的效果图: 说明: 上图:这里先省去分页,只讲:Android GridView 控件实现自定义。 按照上面的图例需求,大致上可以把Android GridView 画成如下的方
android--(布局图文混排GridView、BaseAdapter适配器)
activity: /** * 自定义适配器 * * 1.创建一个类,继承BaseAdapter类 * 2.实现4个方法 * getCount:获取要显示的选项总数 * * getItem :获取每一个选项,类情况而定 * * getItemId:获取每个选项的id * * getView :该方法用来为每一个选项生成视图(这里为:ImageView),
在dialog中显示gridview
平常我们看到的dialog都是列表样式的,有没有什么方式让dialog中的内容显示为九宫等样式呢?想到在dialog中显示gridview。 首先写一个dialog.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
Android 自定义九宫格控件Gridview用法以及属性
九宫格控件Gridview让人熟悉又陌生,它适配器跟listview差不多,常用都是继承baseAdapt 就能快速完成一个适配器,适配器里面的item也可以根据具体情况来写。那在本博客主要是了解Gridview基本属性,以及自定义Gridview与滚动条ScrollBar共存不冲突的情况、重写dispatchTouchEvent方法禁止GridView滑动。
Android——自定义自适应高度的GridView
在使用Gridiew的时候,如果设定height=”wrap_content”,使用adapter往里面添加View时,有时出现显示不全,所以需要定义一个自适应高度的GridView
选择图库中照片GridView显示
前面文章讲述的都是"随手拍"中图像处理的操作,此篇文章主要讲述GridView控件实现添加本地图片并显示.主要是关于GridView控件的基本操作,通常可以通过自定义继承BaseAdapter的适配器加载图片,而下面讲述的不是自定义的适配器,而是调用SimpleAdapter实现的.至于上传发布与网络交互此处不讲述,后面文章会讲! 一. 实现效果     主要是通过点击+从本地相册中添