- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我对 Android 编程还很陌生,所以这个错误很可能是我没有注意到的非常简单的事情。但每当我打开我的简单应用程序时,它都会以图像开始。当我滑动时,它应该更改为不同的图像,但应用程序崩溃了。有什么想法吗?
这是我的java代码
package example.course.bananapeeler;
import android.gesture.Gesture;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ImageView;
import android.view.MotionEvent;
import android.view.GestureDetector;
import android.support.v4.view.GestureDetectorCompat;
public class MainActivity extends ActionBarActivity implements GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener{
private ImageView mainPic;
private GestureDetectorCompat gestureDetector;
private int moneyPerSecond;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.gestureDetector = new GestureDetectorCompat(this, this);
gestureDetector.setOnDoubleTapListener(this);
//ImageView mainPic = (ImageView)findViewById(R.id.mainPic);
ImageView mainPic = (ImageView)findViewById(R.id.mainPic);
}
@Override
public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onDoubleTap(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onDown(MotionEvent motionEvent) {
return true;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
return false;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
}
@Override
public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
/*
ImageView img = new ImageView(this);
findViewById(R.id.mainPic);
*/
mainPic.setImageResource(R.drawable.peeledbanana);
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
this.gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
xml 文件:
<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"><![CDATA[
/"peeledbanana";
android:id="@+id/imageView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
]]>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mainPic"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@drawable/mainbanana"
android:contentDescription="@string/mainPic" />
</RelativeLayout>
不知道为什么语法文件的格式很奇怪。这是导致崩溃的原因吗?
Logcat 错误
05-13 17:16:47.329 2333-2333/example.course.bananapeeler E/InputEventReceiver﹕ Exception dispatching input event. 05-13 17:16:47.329 2333-2333/example.course.bananapeeler E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback 05-13 17:16:47.339
2333-2333/example.course.bananapeeler E/MessageQueue-JNI﹕ java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference at example.course.bananapeeler.MainActivity.onFling(MainActivity.java:88) at android.view.GestureDetector.onTouchEvent(GestureDetector.java:620) at android.support.v4.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent(GestureDetectorCompat.java:475) at android.support.v4.view.GestureDetectorCompat.onTouchEvent(GestureDetectorCompat.java:538) at example.course.bananapeeler.MainActivity.onTouchEvent(MainActivity.java:102) at android.app.Activity.dispatchTouchEvent(Activity.java:2869) at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2529) at android.view.View.dispatchPointerEvent(View.java:9180) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4734) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4572) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4149) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4115) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4229) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4123) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4286) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4149) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4115) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4123) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6600) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6484) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6455) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6690) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:143) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:5972) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183) 05-13 17:16:47.339 2333-2333/example.course.bananapeeler D/AndroidRuntime﹕ Shutting down VM 05-13 17:16:47.339
2333-2333/example.course.bananapeeler E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: example.course.bananapeeler, PID: 2333 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference at example.course.bananapeeler.MainActivity.onFling(MainActivity.java:88) at android.view.GestureDetector.onTouchEvent(GestureDetector.java:620) at android.support.v4.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent(GestureDetectorCompat.java:475) at android.support.v4.view.GestureDetectorCompat.onTouchEvent(GestureDetectorCompat.java:538) at example.course.bananapeeler.MainActivity.onTouchEvent(MainActivity.java:102) at android.app.Activity.dispatchTouchEvent(Activity.java:2869) at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2529) at android.view.View.dispatchPointerEvent(View.java:9180) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4734) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4572) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4149) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4115) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4229) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4123) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4286) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4149) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4115) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4123) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6600) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6484) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6455) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6690) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:143) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:5972) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
最佳答案
您正在本地初始化 mainPic 而不是类变量。
改变
ImageView mainPic = (ImageView)findViewById(R.id.mainPic);
至
mainPic = (ImageView)findViewById(R.id.mainPic);
关于java - Android setImageResource 导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225170/
我正在尝试设置一个图像,并在短暂的停顿(如闪烁)后将其更改为不同的图像;并且它应该在应用程序启动后自动启动。 public class MainActivity extends ActionBarAc
我需要更改 ImageView 中的图像,然后获取宽度。问题是,它给了我最后一张图片的宽度。 headpic.setImageResource(head[x]); int width = headpi
我有以下代码: public class PainLogger extends Activity implements OnClickListener, OnItemClickListener{
我正在尝试制作我的第一个应用程序 (yahtzee)。当您单击滚动按钮时,我想切换骰子的图像,现在每当我调用 setImageResource 时我都会崩溃。 主要 Activity : public
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
每当我尝试运行该行时,我的程序就会崩溃: d1.setImageResource(R.drawable.clubs9); 我想不通为什么。它似乎与我使用类似代码行的另一个程序相同。我试过添加 getR
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); set
我正在制作一款棋盘游戏,我正在为棋盘使用 10x10 GridView。我制作了一个扩展 BaseAdapter 的 ImageAdapter 类,它包含一个整数图标数组(9 个补丁文件),这些用于显
我有一个 imageView,我想显示您当前所在国家/地区的小图标。我可以获得国家代码,但问题是我无法动态更改 imageView 资源。我的图片文件都是小写的(例如:国家代码=US,图片文件=us)
我想根据我的字符串更改 imageview src,我有这样的东西: ImageView imageView1 = (ImageView)findViewById(R.id.imageView1);
我是 java/android 新手,正在制作一个测试应用程序。它有图像按钮,单击时会暂时切换到不同的图像。使用 裁剪原件 android:adjustViewBounds="true" androi
我试图在我的应用程序中显示一个图像,每次按下按钮时该图像都会发生变化。应显示的图像的名称位于我的对象中。我可以通过以下方式获取图像的名称 String nameOfImage = myObhect.g
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有一个 imageView,我想显示您当前所在国家/地区的小图标。我可以获取国家/地区代码,但问题是我无法动态更改 imageView 资源。我的图像文件都是小写的(例如:国家/地区代码=US,图像
我尝试设置IV_status.setImageResource(R.drawable.red) 但它似乎不起作用,每当调用上面的代码时,整个应用程序都会运行 会崩溃。我也尝试过setBackgroun
我无法找到如何将图片设置为 setImageResource()。目前我可以像这样从 res/drawable 轻松添加: 在 ListViewAdapter 中: imageView = (Imag
我需要有关使用 setImageResource 方法设置随机图像的帮助。在可绘制文件夹中,我有一个名为 photo0.jpg、photo1.jpg...photo99.jpg 的 jpeg 文件。以
我正在尝试从我的 Assets 文件夹中获取图像并将它们设置到我的变量中,称为insectImage。这是我所做的: InsectRecyclerAdapter.InsectHolder insect
我正在构建另一个更大的应用程序,在某些时候我需要动态更改图像,并且我的应用程序崩溃了。因此,为了测试功能,我制作了另一个非常简单的应用程序,它只显示带有代码的图片: package com.examp
我想基于变量以编程方式为 ImageButton 设置 ImageResource。 例如:如果 size=5,我想将 setImageResource 设置为 R.drawable.five
我是一名优秀的程序员,十分优秀!