ImageViewImageView点击事件报错空指针

Posted csschn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImageViewImageView点击事件报错空指针相关的知识,希望对你有一定的参考价值。

今天在使用自定义圆形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     }

     

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

以上是关于ImageViewImageView点击事件报错空指针的主要内容,如果未能解决你的问题,请参考以下文章

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

@Autowired注入RedisCache报错空指针

JDK8线上环境导出Excel报错空指针,原因是缺少相应字体

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

java中getSession写在方法里就可以,方法为就报错空指针

导入(上传)Excel文件时报错空指针异常?