我在这个上摸不着头脑,不知道该怎么做。在我开始活动后,我收到了一个NullPointerException报告,但不是所有时间。任何想法可能会发生什么?
这是Google报告的堆栈跟踪。请注意onItemClick()调用startIntent,并且某处发生NullPointerException。
java.lang.NullPointerException
at android.content.ComponentName.<init>(ComponentName.java:78)
at android.content.Intent.<init>(Intent.java:4180)
at com.kd7uiy.hamfinder.al.onItemClick(Unknown Source)
at android.widget.AdapterView.performItemClick(AdapterView.java:308)
at android.widget.AbsListView.performItemClick(AbsListView.java:1478)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3480)
at android.widget.AbsListView$3.run(AbsListView.java:4823)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
这是代码。
public MainNavigationDrawerAdapter(Context context, FragmentManager fragMan,int locLogActivity) {
mContext=context;
mFragMan=fragMan;
mTitle=context.getString(locLogActivity);
mHashMap=new HashMap<String,Class<?>>();
addToMap(R.string.upgrade_activity,ManageAddOnPurchaseActivity.class);
addToMap(R.string.qth_map_activity,QthMapActivity.class);
addToMap(R.string.export_to_adif,WriteADIF.class);
mAdapter = new ArrayAdapter<String> (context,R.layout.drawer_list_item);
for (String key:mHashMap.keySet()) {
mAdapter.add(key);
}
}
private void addToMap(int titleResource, Class<?> theClass) {
String title=mContext.getString(titleResource);
if (!mTitle.equals(title)) {
mHashMap.put(title,theClass);
}
}
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
Intent intent=new Intent(mContext,mHashMap.get(((TextView)view).getText()));
mContext.startActivity(intent);
}
答案 0 :(得分:3)
您的NPE似乎来自Intent
的第二个参数,即null
。
这是由null
返回的HashMap
值引起的,因为您使用getText()
访问的密钥没有关联值,或者与null
关联。< / p>
您点击的view
是什么?确保您将该视图的文字放在HashMap
。
更新:点击列表标题时可能会出现问题。检查您是否有标题。