andriod gridview 空指针异常

问题描述

andriod gridview 空指针异常
package com.example.weishi03;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.weishi03.utils.Md5;
import com.example.weishi03.utils.MyConstant;
import com.example.weishi03.utils.SpTool;

public class HomeActivity extends Activity {

private int[] icons = {R.drawable.oneR.drawable.twoR.drawable.three        R.drawable.fourR.drawable.fiveR.drawable.six        R.drawable.sevenR.drawable.eightR.drawable.nine};private String[] names = {""one""two""three""four""five""six""seven""eight""nine""};private GridView gv;private MyAdapter adapter;  private AlertDialog dialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onCreate(savedInstanceState);    initView();    initData();    initEvent();}private void initEvent() {    gv.setOnItemClickListener(new OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> parent View view                int position long id) {            switch (position) {            case 0:                if (TextUtils.isEmpty(SpTool.getString(getApplicationContext() MyConstant.PASSWORD"))){                    showSetPassWord();                }else {                    showEnterPassWord();                }                break;            default:                break;            }        }    });}protected void showEnterPassWord() {    AlertDialog.Builder ab = new AlertDialog.Builder(this);    View view =View.inflate(getApplicationContext() R.layout.dialog_enterpass null);    final EditText pass = (EditText) findViewById(R.id.et_dialogenterpassword_pass);    Button confim = (Button) findViewById(R.id.bt_dialogenterpassword_confim);    Button cancel = (Button) findViewById(R.id.bt_dialogenterpassword_cancel);    ab.setView(view);    confim.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            String passWord = pass.getText().toString();            String truePass = SpTool.getString(getApplicationContext() MyConstant.PASSWORD");            passWord = Md5.md5(Md5.md5(passWord));            if (passWord == null || passWord != truePass ) {                Toast.makeText(getApplicationContext()Wrong pass"" 1).show();                return;            }else {                Intent intent = new Intent(HomeActivity.thisLostFindActivity.class);                startActivity(intent);            }            dialog.dismiss();        }    });    cancel.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            dialog.dismiss();        }    });    dialog = ab.create();    dialog.show();}protected void showSetPassWord() {    AlertDialog.Builder ab = new AlertDialog.Builder(this);    View view = View.inflate(getApplicationContext() R.layout.dialog_setpass null);    final EditText et_passone = (EditText) findViewById(R.id.et_dialogsetpass_passone);    final EditText et_passtwo = (EditText) findViewById(R.id.et_dialogsetpass_passtwo);    Button bt_confim = (Button) findViewById(R.id.bt_dialogsetpass_confim);    Button bt_cancel = (Button) findViewById(R.id.bt_dialogsetpass_cancel);    ab.setView(view);    bt_confim.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            String passone = et_passone.getText().toString().trim();            String passtwo = et_passtwo.getText().toString().trim();            if (passone.equals("""") || passtwo.equals("""")) {                Toast.makeText(getApplicationContext()Pass is null"" 1).show();                return;            }else if (!passone.equals(passtwo)) {                Toast.makeText(getApplicationContext()Pass is nu"" 1).show();                return;            }else {                passone = Md5.md5(Md5.md5(passone));                SpTool.putString(getApplicationContext() MyConstant.PASSWORD passone);                dialog.dismiss();            }        }    });    bt_cancel.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            dialog.dismiss();        }    });    dialog = ab.create();    dialog.show();}private void initData() {    adapter = new MyAdapter();    gv.setAdapter(adapter);}private class MyAdapter extends BaseAdapter{    @Override    public int getCount() {        return icons.length;    }    @Override    public View getView(int position View convertView ViewGroup parent) {        View view = View.inflate(getBaseContext() R.layout.item_gridview null);        ImageView iv = (ImageView) findViewById(R.id.iv_item_gridview_icon);        TextView tv = (TextView) findViewById(R.id.tv_item_gridview_name);        iv.setImageResource(icons[position]);        tv.setText(names[position]);        return view;    }    @Override    public Object getItem(int position) {        // TODO Auto-generated method stub        return null;    }    @Override    public long getItemId(int position) {        // TODO Auto-generated method stub        return 0;    }}private void initView() {    setContentView(R.layout.activity_home);    gv = (GridView) findViewById(R.id.gv_home_gridview);}

}

上面的代码我是按照视频里敲的但是在 iv.setImageResource(icons[position]);这里报空指针异常我该怎么改?

解决方案

 View view = View.inflate(getBaseContext() R.layout.item_gridview null);        ImageView iv = (ImageView) findViewById(R.id.iv_item_gridview_icon);        TextView tv = (TextView) findViewById(R.id.tv_item_gridview_name);    改成    View view = View.inflate(getBaseContext() R.layout.item_gridview null);        ImageView iv = (ImageView)view.findViewById(R.id.iv_item_gridview_icon);        TextView tv = (TextView) view.findViewById(R.id.tv_item_gridview_name);

解决方案二:
太粗心了.多谢danielinbiti

时间: 2024-10-15 05:14:55

andriod gridview 空指针异常的相关文章

Android开发学习笔记 Gallery和GridView浅析_Android

一.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果. Gallery常用的XML属性 属性名称 描述 android:animationDuration 设置布局变化时动画的转换所需的时间(毫秒级).仅在动画开始时计时.该值必须是整数,比如:100. android:gravity 指定在对象的X和Y轴上如何放置内

Andriod学习教程之滑动布局(14)_Android

本文实例为大家分享了Andriod滑动布局的具体代码,供大家参考,具体内容如下 MainActivity.java代码: package siso.swipelayoutdemo; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.B

Android开发学习笔记 Gallery和GridView浅析

一.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果. Gallery常用的XML属性 属性名称 描述 android:animationDuration 设置布局变化时动画的转换所需的时间(毫秒级).仅在动画开始时计时.该值必须是整数,比如:100. android:gravity 指定在对象的X和Y轴上如何放置内

andriod平台"点九" .9.png设计介绍

"点九"是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形. 我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真. OK,在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示

第一章 andriod studio 安装与环境搭建

原文 http://blog.csdn.net/zhanghefu/article/details/9286123 第一章   andriod studio 安装与环境搭建   一.Android Studio简介 Android Studio是Google新发布的Android应用程序开发环境,Android Studio是基于IntelliJ IDEA开发而成的.在Android Studio开发环境中,Android开发者可以非常方便地调试Android应用程序,Android Studi

动态表头 固定-Gridview中怎么固定动态生成的表头?

问题描述 Gridview中怎么固定动态生成的表头? Gridview中固定表头的方法很多,但是如果是在后台生成的动态模板列的时候,表头是后台生成的,用CSS和js不能实现固定表头,那请问怎么样将其进行表头固定?求大神指导!谢谢!

yii gridview表头固定,只让表体滚动

问题描述 yii gridview表头固定,只让表体滚动 yii gridview表头固定,只让表体滚动 yii gridview表头固定,只让表体滚动 yii gridview表头固定,只让表体滚动 解决方案 @?Page?Language="C#"?AutoEventWireup="true"?CodeFile="Default9.aspx.cs"?Inherits="Default9"?%>DOCTYPE?html

yii gridview 怎样固定表头

问题描述 yii gridview 怎样固定表头 yii gridview 怎样固定表头,想要将表格头部固定,只滚动表身,请问怎样实现,求解 解决方案 关于gridview表头固定GridView固定表头GridView固定表头

DevExpress GridView 添加和设置右键菜单

右键菜单肯定是GridView中经常要使用的一个功能.本文主要描述三个方面:1.如何在GridView中添加右键菜单2.如何设置菜单是否可用(enable)3.如何获取右键点击事件 一.添加右键菜单1.在VS工具箱中的"菜单和工具栏"找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项. 3.选择gridControl(注意这里不是gridView的属性),在属性中可以找到ContextMenuStr