【ImageView】ImageView点击事件报错空指针

今天在使用自定义圆形imageview的时候,想利用其点击事件来实现查看个人资料功能,但是该空间在Activity中的onCreate方法中调用点击事件总是出现空指针异常,每次程序都进不去主页面,到处查,和同学商量,还是没有解决,最后还是看到了网友的一句话:

  • 控件A是在子布局中使用的控件,如果子布局未能成功加载,A也无法使用

意思也就是,如果 子布局在初始化界面的时候没有加载,但是你要用子布局中的控件,肯定是行不通的,所以要先在加载子布局之后实例化控件,然后定义各种操作;

下面给出我的例子:

  1. 这种事不行的,子布局中的控件在onCreate方法中实例化

     1 public class Main2Activity extends AppCompatActivity
     2         implements NavigationView.OnNavigationItemSelectedListener {
     3
     4
     5
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         requestWindowFeature(Window.FEATURE_NO_TITLE);
    10         setContentView(R.layout.activity_main2);
    11
    12         //实例化自定义控件
    13         RoundImageView roundImageView = (RoundImageView)findViewById(R.id.right_login_head);
    14
    15         //设置点击事件
    16         roundImageView.setOnClickListener(new View.OnClickListener() {
    17             @Override
    18             public void onClick(View v) {
    19                 Toast.makeText(Main2Activity.this, "Test onclick", Toast.LENGTH_SHORT).show();
    20
    21             }
    22         });
  2. 这种是可以的

     1 @SuppressWarnings("StatementWithEmptyBody")
     2     @Override
     3     public boolean onNavigationItemSelected(MenuItem item) {
     4         // Handle navigation view item clicks here.
     5
     6         //实例化自定义控件
     7         RoundImageView roundImageView = (RoundImageView)findViewById(R.id.right_login_head);
     8
     9         //设置点击事件
    10         roundImageView.setOnClickListener(new View.OnClickListener() {
    11             @Override
    12             public void onClick(View v) {
    13                 Toast.makeText(Main2Activity.this,"Test onclick",Toast.LENGTH_SHORT).show();
    14
    15             }
    16         });
    17         int id = item.getItemId();
    18
    19         if (id == R.id.nav_camera) {
    20             // Handle the camera action
    21         } else if (id == R.id.nav_gallery) {
    22
    23         } else if (id == R.id.nav_slideshow) {
    24
    25         } else if (id == R.id.nav_manage) {
    26
    27         } else if (id == R.id.nav_share) {
    28
    29         } else if (id == R.id.nav_send) {
    30             Toast.makeText(Main2Activity.this,"send",Toast.LENGTH_SHORT).show();
    31         }
    32
    33         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    34         drawer.closeDrawer(GravityCompat.START);
    35         return true;
    36     }

不管怎样,解决了这个问题,以后要留心此类问题

时间: 2024-08-03 00:02:34

【ImageView】ImageView点击事件报错空指针的相关文章

iOS开发——给ImageView添加点击事件

      给ImageView添加点击事件   1: cell.pictureView.userInteractionEnabled = YES; 2: UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc]initWithTarget:cell action:@selector(displayPicture:)]; 3: gr.numberOfTapsRequired = 1; 4: gr.numberOfTouchesReq

解决Ext4.2.3中propertyGrid修改后点击排序报错

Ext4.2.3中PropertyGrid修改后点击排序报错,具体错误信息如下: 一开始还怀疑是自己哪里配置错了,各种尝试结果还是一样.查遍百度和谷歌,无果,只有一篇帖子说是4.2.4修正了.还是自己动手吧,自己动手丰衣足食. 点开报错地方(如下图所示),原来是me.field.column没有定义. 然后继续找,找啊找啊找到Ext.grid.property.Grid的getCellEditor方法.此方法有参数column,可在方法体内,column就没有被用到过,于是就感觉问题出在这里.

多线程中,ResultSet为空,报错空指针

最近在数据库查询数据时,由于数据量太大,使用了多线程,通过线程池建了好几个线程,然后调用了一个封装好的jdbc查询语句. 结果在多线程中,ResultSet报错空指针. 仔细查阅后,才发现多个线程访问了同一个connection,事务混乱,导致了空指针. 解决方法: 使用数据库连接池,这样一个线程各自使用一个connection,就不会有冲突了. 原文地址:https://www.cnblogs.com/expiator/p/9168281.html

eclipse环境下的springboot框架+mybatis访问MySQL报错空指针

最近在写springboot项目时,在开始阶段遇到了一个问题,我按照教程搭建好框架之后,利用mybatis访问MySQL数据库,但是不管执行增加还是查询数据库方法都报空指针异常, 错误截图如下: 2020-01-07 22:22:53.793 ERROR 2304 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in

音/视频点击播放报错

场景:切换音频时,太频繁会出以下错误 The play() request was interrupted by a new load request. 解决: 加一个变量,在timeupdate事件时候去改变这个值,控制是否可以切换 原文地址:https://www.cnblogs.com/victory820/p/9820797.html

有些元素,明明定位而没错,但是一点击就报错,可能有鼠标悬浮动作。

# 鼠标悬浮 from selenium.webdriver import ActionChains data_gslx = driver.find_element_by_xpath('//div[text()="有限责任公司"]') #选择公司类型 action = ActionChains(driver) action.move_to_element(data_gslx).perform() time.sleep(0.2) data_gslx.click() 没办法上传视频,图片效

代码错误:点击删除报错

问题原因: 标注颜色的部分用错了方法,removeobject应该换成removeObjectAtIndex override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {     var indexpaths = NSArray(array: [inde

ListView中多个EditText设置焦点 多次点击异常报错

08-17 18:23:09.825: ERROR/AndroidRuntime(1608): FATAL EXCEPTION: main 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): java.lang.IllegalArgumentException: parameter must be a descendant of this view 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): at a

如何扩大ImageView的点击区域

我们在开发中会遇到,给imageview设置点击事件,但是美工切的原始图片一般在24dp左右,这个尺寸点击时会出现不灵敏的情况(点击区域太小). 解决方案: 给imageView设置  scaleType=”centerInside“   然后加大imageview的尺寸即可.  设置这个属性后,imageview不管多大,图片总是以本身的大小剧中显示. 注意事项:如果直接使用padding值来设置,图片的大小调整不好的话会出现图片被拉伸或压缩的情况.所以最简便的方法是使用scaleType属性