【发布时间】:2015-04-27 21:15:45
【问题描述】:
我正在尝试制作ImageView 在触摸动作上滑动图像,但是当我移动到下一张图像时,我收到一条错误消息:
java.lang.NullPointerException: 尝试调用虚方法 'void android.widget.ImageView.setBackground(android.graphics.drawable.Drawable)' 在空对象引用上 在 com.semicolon.www.slider.MainActivity.onTouchEvent(MainActivity.java:48)
代码如下:
public class MainActivity extends ActionBarActivity {
ImageSwitcher Switch;
ImageView image;
float intialX;
private Cursor cursor;
private int columnIndex, position = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Switch = (ImageSwitcher) findViewById(R.id.imageSwitcher);
image = (ImageView) findViewById(R.id.image);
}
public boolean onTouchEvent(MotionEvent event){
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
intialX = event.getX();
break;
case MotionEvent.ACTION_UP:
float finalX = event.getX();
if (intialX > finalX) {
Drawable r = getResources().getDrawable(R.drawable.img2);
image.setBackground(r);
}
break;
}
return false;
}
}
那么我该如何解决这个错误并为ImageView 放置图像(或背景)?
【问题讨论】:
-
您确定 id 正确吗?设置
image = (ImageView) findViewById(R.id.image);后尝试添加日志,如if(image == null) Log.d("MainActivity", "image is null!"); -
@FlorianSchrofner 你是对的,ImageView 的 id 是错误的。
标签: android android-imageview android-drawable