【ImageView】ImageView点击事件报错空指针
今天在使用自定义圆形imageview的时候,想利用其点击事件来实现查看个人资料功能,但是该空间在Activity中的onCreate方法中调用点击事件总是出现空指针异常,每次程序都进不去主页面,到处查,和同学商量,还是没有解决,最后还是看到了网友的一句话:
- 控件A是在子布局中使用的控件,如果子布局未能成功加载,A也无法使用
意思也就是,如果 子布局在初始化界面的时候没有加载,但是你要用子布局中的控件,肯定是行不通的,所以要先在加载子布局之后实例化控件,然后定义各种操作;
下面给出我的例子:
- 这种事不行的,子布局中的控件在onCreate方法中实例化
public class Main2Activity extends AppCompatActivity 
 implements NavigationView.OnNavigationItemSelectedListener { @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 requestWindowFeature(Window.FEATURE_NO_TITLE);
 setContentView(R.layout.activity_main2); //实例化自定义控件
 RoundImageView ivAvatar= (RoundImageView)findViewById(R.id.right_login_head); //设置点击事件
 ivAvatar.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
 Toast.makeText(Main2Activity.this, "Test onclick", Toast.LENGTH_SHORT).show(); }
 });
- 这种是可以的,首先要获得ImageView的父布局实例,navigationView,再根据父布局实例获得ImageView,
//实例化DrawerLayout布局控件 
 DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
 /*ActionBarDrawerToggle实现了DrawerListener,所以他能做DrawerListener可以做的任何事情,
 同时他还能将drawerLayout的展开和隐藏与actionbar的app 图标关联起来,当展开与隐藏的时候图标
 有一定的平移效果,点击图标的时候还能展开或者隐藏菜单。*/ //使用ActionBarDrawerToggle来监听
 ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
 this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
 drawer.setDrawerListener(toggle);
 toggle.syncState();
 //实例化NavigationView
 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
 //调用getHeaderView方法获得Header
 View headerView = navigationView.getHeaderView(0);
 //通过Header来获取自定义控件
 ivAvatar = (ImageView) headerView.findViewById(R.id.right_login_head1);
不管怎样,解决了这个问题,以后要留心此类问题,记得控件实例的先后顺序,不然就会找不到,造成空指针异常
【ImageView】ImageView点击事件报错空指针的更多相关文章
- iOS开发——给ImageView添加点击事件
		给ImageView添加点击事件 1: cell.pictureView.userInteractionEnabled = YES; 2: UITapGestureRecognizer ... 
- SharePoint 2013 点击"关注" 报错
		现象: 点击"关注" 报错. 解决办法: 1.确保bin文件夹下的.dll版本与web.config一致. 2.设置user porfile权限. 2.重启iis 结果如下: 
- 【GitLab】gitlab上配置webhook后,点击测试报错:Requests to the local network are not allowed
		gitlab上配置webhook后,点击测试报错: Requests to the local network are not allowed 操作如下: 报错: 错误原因: gitlab 10.6 ... 
- 多线程中,ResultSet为空,报错空指针
		最近在数据库查询数据时,由于数据量太大,使用了多线程,通过线程池建了好几个线程,然后调用了一个封装好的jdbc查询语句. 结果在多线程中,ResultSet报错空指针. 仔细查阅后,才发现多个线程访问 ... 
- guava缓存设置return null一直报错空指针
		guava缓存设置return null一直报错空指针 因为缓存不允许返回为空 
- FCKeditor编辑器第一次点击总是报错(上传图片) 之后就好了
		错误: Failed to execute 'getRangeAt' on 'Selection': 0 is not a valid index. FCKeditor编辑器第一次点击总是报错(上 ... 
- 【MybatisPlus】数据库的datetime类型字段为空的时候,报错空指针?
		一.发现经历 事情是这样的,我今天本来要演示系统,就去前端同学的页面上点一点.不小心点到了其他同事编写的服务,然后界面就报错了.这给我吓得,这还能演示吗这.然后,我就去服务器查看了一下日志,发现了如下 ... 
- eclipse点击包(package)时报错,安装hibernate后点击包报错org/eclipse/jpt/common/utility/exception/ExceptionHandler
		错误描述: 当我们点击包名时,出现如下错误提示.An error has occurred. See error log for more details.org/eclipse/jpt/common ... 
- chrome 监听touch类事件报错:无法被动侦听事件preventDefault
		先上错误信息: Unable to preventDefault inside passive event listener due to target being treated as passiv ... 
随机推荐
- html中表格的制作
			<table summar="给表格添加摘要".> <captioan> 给表格添加标题 </caption> <tr> <t ... 
- Ping of Death
			[Ping of Death] The ping of death attack, or PoD, can cripple a network based on a flaw in the TCP/I ... 
- crontab使用
			结合一条命令:0 */4 * * * curl http://xxxx.abc.com/admin.php?s=/Crontab/exec_114study_urltags 
- man curl_easy_init(原创)
			curl_easy_init(3) libcurl 手册 curl_easy_init(3) 名字 curl_easy_init - 开始一个简单的libcurl会话 梗概 #include < ... 
- AD账号创建日期、最近一次登录时间、最近一次重置密码时间查询
			一:查询此AD域内所有用户的创建日期 Get-ADuser -filter * -Properties * | Select-Object Name,SID, Created,PasswordLas ... 
- Linux入门学习 常用命令
			cd命令 功能是切换到指定的目录:命令格式:cd [目录名]有几个符号作为目录名有特殊的含义:"/"代表根目录.".."代表上一级目录."~" ... 
- codeforces 742D (分组背包)
			D. Arpa's weak amphitheater and Mehrdad's valuable Hoses Just to remind, girls in Arpa's land are ... 
- 类的序列化和反序列化(ObjectOutputStream和ObjectInputStream)
			1.需要序列化的类 import java.io.Serializable; /** * 必须继承 Serializable 接口才能实现序列化 */ public class Employee im ... 
- 真正解决问题:maven  eclipse  tomcat java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
			在使用eclipse进行整合springmvc时经常会碰到这样的异常: java.lang.ClassNotFoundException:org.springframework.web.context ... 
- js 事件绑定
			事件绑定的方式 1. DOM 元素行内绑定 <div onclick="alert(1)"></div> 2. js on+eventType do ... 
