Android 如何在longpress上隐藏imageview在listview上

Android 如何在longpress上隐藏imageview在listview上,android,listview,Android,Listview,我的listview上有锁定图标,我想在listview上使用longpress隐藏/显示它 我试过了,但是得到了一个空指针异常我应该怎么做请帮助 我不熟悉安卓系统 有什么帮助吗?提前谢谢 listView = (ListView)findViewById(R.id.lv_filename); lock =(ImageView)findViewById(R.id.lock); registerForContextMenu(listView); @Override public vo

我的listview上有锁定图标,我想在listview上使用longpress隐藏/显示它 我试过了,但是得到了一个空指针异常我应该怎么做请帮助 我不熟悉安卓系统 有什么帮助吗?提前谢谢

 listView = (ListView)findViewById(R.id.lv_filename);
 lock =(ImageView)findViewById(R.id.lock);
 registerForContextMenu(listView);




@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    if (v.getId()==R.id.lv_filename) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_list, menu);
    }
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    switch(item.getItemId()) {
        case R.id.add:
            // add stuff here
            return true;
        case R.id.edit:
            lock.setVisibility(View.INVISIBLE); //getting error on this line
        default:
            return super.onContextItemSelected(item);
    }
    }
日志:

java.lang.NullPointerException
                                                                    at com.advoco.notepad.MainActivity.onContextItemSelected(MainActivity.java:105)
                                                                    at android.app.Activity.onMenuItemSelected(Activity.java:2714)
                                                                    at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:408)
                                                                    at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195)
                                                                    at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:113)
                                                                    at com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback.onMenuItemSelected(PhoneWindow.java:4082)
                                                                    at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:741)
                                                                    at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
                                                                    at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:884)
                                                                    at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
                                                                    at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:173)
                                                                    at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:952)
                                                                    at android.widget.AdapterView.performItemClick(AdapterView.java:302)
                                                                    at android.widget.AbsListView.performItemClick(AbsListView.java:1196)
                                                                    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3054)
                                                                    at android.widget.AbsListView$3.run(AbsListView.java:3812)
                                                                    at android.os.Handler.handleCallback(Handler.java:733)
                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                    at android.os.Looper.loop(Looper.java:136)
                                                                    at android.app.ActivityThread.main(ActivityThread.java:5584)
                                                                    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:1268)
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
                                                                    at dalvik.system.NativeStart.main(Native Method)
活动类中的
findViewById()
方法在活动布局中查找具有特定id的视图。如果找不到该视图,它将返回null

现在,由于id为
R.id.lock
ImageView
不在活动布局中,这正是您获得
java.lang.NullPointerException
的原因


您需要在自定义适配器中声明此
ImageView
,以便执行所有可见性操作

你确定你的活动版面中有一个id为
R.id.lock
ImageView
吗?我的customAdapter版面@Abhishek Jaincan中有这个图像,如果我发布我的customAdapter,你可以帮我吗?我是android@Abhishek Jain的新手