Я разрабатываю код, в котором контекстное меню должно появляться при длительном нажатии элемента списка. Это работало ранее, но не знает, почему это сейчас NPE. Посмотрите мой код ниже и предложите.onCreateContextMenu- NPE
public void displayImages(){
//some other functionality
imageAdapter = new GoodAdapter(this, imageBeanArray);
list.setAdapter(imageAdapter);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
registerForContextMenu(list);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Options");
menu.add(0, v.getId(), 0, "Rename");
menu.add(0,v.getId(),0,"Delete");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
final ImageBean imageBean = imageBeanArray.get(info.position);
final int selectedImageId= imageBean.getId();
if(item.getTitle()=="Rename") {//Do some thing}
else if (item.getTitle()=="Rename") {//Do some thing else}
}
Компоновка Декларация Просмотр списка:
<?xml version="1.0" encoding="utf-8"?>
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/menu"
android:background="@color/white"
android:choiceMode="multipleChoice"
android:cacheColorHint="#00000000"
android:scrollbars="none" />
Logcat говорит:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.kittu.ClientLync, PID: 30281
java.lang.NullPointerException
at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionMode(PhoneWindow.java:2694)
at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionModeForChild(PhoneWindow.java:2619)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:675)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:675)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:675)
at android.view.View.startActionMode(View.java:4752)
at android.widget.AbsListView.performLongPress(AbsListView.java:3538)
at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:3494)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5487)
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:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Можете ли вы предоставить объявление компоновки своего списка ListView? –
@PaulLammertsma: найдите XML-код макета. К сожалению, я не смог добавить его в виде XML-кода. Не знаю, почему. – Kittu