我不知道该怎么办才好。我收到一个报告,说在我开始活动之后发生了一个nullpointerexception,但不是一直都是这样。你知道会发生什么吗?
这是谷歌报告的堆栈跟踪。注意,onitemclick()调用了startinent,并且在某个地方发生了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);
}
最佳答案
npe似乎来自Intent
的第二个参数,即null
。
这是由您的null
返回的HashMap
值引起的,因为您使用getText()
访问的密钥没有关联值,或者与null
关联。
你点击的是什么?确保将该视图的文本放到view
中。
更新:也许当你点击列表标题时会出现问题。检查是否有标题。