Android ImageView 控件方法使用出错

犟果 2016-08-28 10:09:42
final ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.temp);

error:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
at com.example.administrator.correct.MainActivity$1.onItemClick(MainActivity.java:65)
...全文
1868 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
犟果 2016-09-04
  • 打赏
  • 举报
回复
引用 8 楼 qq_32505207 的回复:
[quote=引用 7 楼 romanticMU的回复:][quote=引用 1 楼 qq_32505207 的回复:] 空对象,没有找到这个控件,你的这个控件是不是在viewpager的其中一页的XML文件里里或者某个对话框的布局文件里,提示一下你findbyid这个方法前面还有一个this,就是说比如你可以先找到这个组件所在的linelayout,暂时起名为l吧,然后在l.findbyid就可以了。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment" android:id="@+id/relative_layout"> <TextView android:id="@+id/section_label" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src = "@drawable/helin" android:scaleType="fitCenter" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_alignParentStart="true" /> </RelativeLayout> RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.relative_layout); final ImageView imageView = (ImageView) relativeLayout.findViewById(R.id.imageView); imageView.setImageResource(R.drawable.temp); error: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.RelativeLayout.findViewById(int)' on a null object reference at com.example.administrator.correct.MainActivity.onCreate(MainActivity.java:59) [/quote] 你试试这样,final RelativeLayout relativeLayout = (RelativeLayout)getLayoutInflater().inflate(R.layout.你的XML文件的名字,null);然后再relativeLayout.findbyid()。[/quote] 谢谢,不报错了。
犟果 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 qq_32505207 的回复:
空对象,没有找到这个控件,你的这个控件是不是在viewpager的其中一页的XML文件里里或者某个对话框的布局文件里,提示一下你findbyid这个方法前面还有一个this,就是说比如你可以先找到这个组件所在的linelayout,暂时起名为l吧,然后在l.findbyid就可以了。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment" android:id="@+id/relative_layout"> <TextView android:id="@+id/section_label" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src = "@drawable/helin" android:scaleType="fitCenter" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_alignParentStart="true" /> </RelativeLayout> RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.relative_layout); final ImageView imageView = (ImageView) relativeLayout.findViewById(R.id.imageView); imageView.setImageResource(R.drawable.temp); error: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.RelativeLayout.findViewById(int)' on a null object reference at com.example.administrator.correct.MainActivity.onCreate(MainActivity.java:59)
mhq42978 2016-08-29
  • 打赏
  • 举报
回复
估计是把id写错了吧,或者对应的布局文件中根本没有这个控件
猿在古城 2016-08-29
  • 打赏
  • 举报
回复
检查下是不是对应布局文件的imageView
qq_34421327 2016-08-29
  • 打赏
  • 举报
回复
可以 ,很清爽,啊啊啊啊啊
哎,真难 2016-08-29
  • 打赏
  • 举报
回复
绑定错误咯,看下控件信息
Chary Liu 2016-08-29
  • 打赏
  • 举报
回复
引用 7 楼 romanticMU的回复:
[quote=引用 1 楼 qq_32505207 的回复:] 空对象,没有找到这个控件,你的这个控件是不是在viewpager的其中一页的XML文件里里或者某个对话框的布局文件里,提示一下你findbyid这个方法前面还有一个this,就是说比如你可以先找到这个组件所在的linelayout,暂时起名为l吧,然后在l.findbyid就可以了。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment" android:id="@+id/relative_layout"> <TextView android:id="@+id/section_label" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src = "@drawable/helin" android:scaleType="fitCenter" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_alignParentStart="true" /> </RelativeLayout> RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.relative_layout); final ImageView imageView = (ImageView) relativeLayout.findViewById(R.id.imageView); imageView.setImageResource(R.drawable.temp); error: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.RelativeLayout.findViewById(int)' on a null object reference at com.example.administrator.correct.MainActivity.onCreate(MainActivity.java:59) [/quote] 你试试这样,final RelativeLayout relativeLayout = (RelativeLayout)getLayoutInflater().inflate(R.layout.你的XML文件的名字,null);然后再relativeLayout.findbyid()。
一不小心_ 2016-08-28
  • 打赏
  • 举报
回复
你可以把那部分的代码贴出来
Chary Liu 2016-08-28
  • 打赏
  • 举报
回复
空对象,没有找到这个控件,你的这个控件是不是在viewpager的其中一页的XML文件里里或者某个对话框的布局文件里,提示一下你findbyid这个方法前面还有一个this,就是说比如你可以先找到这个组件所在的linelayout,暂时起名为l吧,然后在l.findbyid就可以了。

80,480

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧