【问题标题】:StartActivity crashes in ListView.setOnItemClickListenerListView.setOnItemClickListener 中的 StartActivity 崩溃
【发布时间】:2013-02-23 15:04:23
【问题描述】:

我在开始一项活动时遇到了一个奇怪的问题。我可以使用

从菜单启动它
Intent intent = new Intent(this,SplashScreen.class);
this.startActivity(intent);  

但如果我尝试从 ListView.setOnItemClickListener 启动它,它会崩溃。但是我尝试了各种方法,结果是一样的(我想开始的活动是一个空白屏幕,所以没有什么可疑的)。 这是当前代码...

        list.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
startActivity(new Intent(getBaseContext(), SplashScreen.class));
            }});    

活动被添加到清单中......并且主类扩展了活动。

LogCat

02-23 17:17:11.070: W/dalvikvm(3200): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
02-23 17:17:11.248: E/AndroidRuntime(3200): FATAL EXCEPTION: main
02-23 17:17:11.248: E/AndroidRuntime(3200): java.lang.RuntimeException: Unable to start activity ComponentInfo{ro.pca.rentme/ro.pca.rentme.SplashScreen}: java.lang.NullPointerException
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.os.Looper.loop(Looper.java:137)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.ActivityThread.main(ActivityThread.java:4745)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at java.lang.reflect.Method.invokeNative(Native Method)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at java.lang.reflect.Method.invoke(Method.java:511)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at dalvik.system.NativeStart.main(Native Method)
02-23 17:17:11.248: E/AndroidRuntime(3200): Caused by: java.lang.NullPointerException
02-23 17:17:11.248: E/AndroidRuntime(3200):     at ro.pca.rentme.SplashScreen.onCreate(SplashScreen.java:46)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.Activity.performCreate(Activity.java:5008)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
02-23 17:17:11.248: E/AndroidRuntime(3200):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
02-23 17:17:11.248: E/AndroidRuntime(3200):     ... 11 more

【问题讨论】:

  • 请从 logcat 发布异常堆栈跟踪
  • 您是否尝试将MainActivity 复制到全局活动变量中,然后使用该变量启动SplashScreen.class 而不是使用getBaseContext()
  • 不,我没有。我现在就试试。
  • Shoshi,你的方法行不通。
  • 张贴你的SplashScreen.java,你的问题在SplashScreen.java的46行没有

标签: android eclipse android-listview crash android-activity


【解决方案1】:

您不需要getBaseContext() 使用您的活动名称。

list.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    startActivity(new Intent(YourActivityName.this, SplashScreen.class));
  }
});

确保清单中的两个活动:

 <application ...>
    <activity android:name="your.package.name.MainActivity" /> <!-- or .MainActivity -->
    <activity android:name="your.package.name.SplashScreen" />
 </application>

【讨论】:

  • 同样的崩溃,同样的目录。我已经正确添加了它们。 SplasScreen 类在使用 Intent intent = new Intent(this,SplashScreen.class); 启动应用程序时正常工作this.startActivity(intent);
  • post 02-23 17:17:11.248: E/AndroidRuntime(3200): at ro.pca.rentme.SplashScreen.onCreate(SplashScreen.java:46) 问题不在于开始活动,而在于活动本身!
  • 活动为空白。它只包含一张图片(imageview)。
  • 这似乎很奇怪!你检查过我添加的清单代码吗?也尝试清洁和建造!
  • 是的,清单很完美。问题可能是 onclicklistener 不使用 @override 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2019-12-24
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多