ImageViewImageView点击事件报错空指针
Posted csschn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImageViewImageView点击事件报错空指针相关的知识,希望对你有一定的参考价值。
今天在使用自定义圆形imageview的时候,想利用其点击事件来实现查看个人资料功能,但是该空间在Activity中的onCreate方法中调用点击事件总是出现空指针异常,每次程序都进不去主页面,到处查,和同学商量,还是没有解决,最后还是看到了网友的一句话:
- 控件A是在子布局中使用的控件,如果子布局未能成功加载,A也无法使用
意思也就是,如果 子布局在初始化界面的时候没有加载,但是你要用子布局中的控件,肯定是行不通的,所以要先在加载子布局之后实例化控件,然后定义各种操作;
下面给出我的例子:
- 这种事不行的,子布局中的控件在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 });
- 这种是可以的
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点击事件报错空指针的主要内容,如果未能解决你的问题,请参考以下文章
JDK8线上环境导出Excel报错空指针,原因是缺少相应字体
eclipse环境下的springboot框架+mybatis访问MySQL报错空指针