java - ImageView 和 Intent

标签 java android eclipse listview android-intent

因此,我尝试在单击图像时启动一个新 Activity ,该图像将启动一个新 Activity ,并且图像全屏显示。为此,我编写了以下代码:

XML 文件中定义的 ImageView:

<ImageView
     android:id="@+id/sun"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/sun_title"
     android:layout_centerHorizontal="true"
     android:contentDescription="@string/sun_image"
     android:src="@drawable/sun" />

这里是我使用 onClickListener 来处理单击图像时的 Intent 的地方:

ImageView imageView;
//begin onViewCreated Method
     ...

     final Context classContext = null;
     imageView = (ImageView) getView().findViewById(R.id.sun);

     imageView.setOnClickListener(new View.OnClickListener() {

          @Override
          public void onClick(View v) {
               Intent i = new Intent(classContext, Settings.class);
               startActivity(i);                
          }
     });

     ...
//end onViewCreated Method

以下代码没有出现任何错误,但当我运行应用程序并点击图像时,应用程序崩溃并出现 nullPointerException。这是 logcat:

02-25 16:55:43.201: E/AndroidRuntime(3459): FATAL EXCEPTION: main
02-25 16:55:43.201: E/AndroidRuntime(3459): Process: com.andrewq.planets, PID: 3459
02-25 16:55:43.201: E/AndroidRuntime(3459): java.lang.NullPointerException
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.content.ComponentName.<init>(ComponentName.java:77)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.content.Intent.<init>(Intent.java:3821)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at com.andrewq.planets.FragmentA$2.onClick(FragmentA.java:43)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.view.View.performClick(View.java:4438)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.view.View$PerformClick.run(View.java:18422)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.os.Handler.handleCallback(Handler.java:733)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.os.Handler.dispatchMessage(Handler.java:95)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.os.Looper.loop(Looper.java:136)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at android.app.ActivityThread.main(ActivityThread.java:5017)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at java.lang.reflect.Method.invokeNative(Native Method)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at java.lang.reflect.Method.invoke(Method.java:515)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-25 16:55:43.201: E/AndroidRuntime(3459):     at dalvik.system.NativeStart.main(Native Method)

希望这足以提供答案。

提前致谢:)

编辑:我还没有为图像创建其他 Activity ,因此出于测试目的,我让它打开我的首选项 Activity 。

最佳答案

你有

final Context classContext = null;

所以classContextnull。由于您看起来像是在 Fragment 中,因此请尝试

Intent i = new Intent(getActivity(), Settings.class);

关于java - ImageView 和 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029677/

相关文章:

java - java中的项目依赖

java - 链接文件资源文件失败

java - GWT - 服务器端 - 如何使用 eclipse 将外部库添加到 war 文件

java - 在Eclipse中,是否可以默认设置注释处理和工厂路径?

java - 调用方法设置 JFrame 可见时出错

java - 从模式向 JAXB 绑定(bind)类添加注释

java - 并排显示星号正方形,实心和空心

android - 构造函数未定义 ArrayAdapter

c# - 在 xamarin android 中删除 ListView

java - Eclipse 外的 Servlet 桥接 OSGi 命令行控制台