Android-ListView-ContextMenu不';每个列表项上都没有显示

Android-ListView-ContextMenu不';每个列表项上都没有显示,android,listview,contextmenu,Android,Listview,Contextmenu,我有Main.java活动,它拥有ListView(简单记事本应用程序)。我需要上下文菜单时,点击listview项目(单注)与“复制”。我有三张钞票 长音符 URL注释 短笺 只有在URL上,单击时上下文菜单才会弹出。为什么? public class Main extends Activity { private Button createButton; private ListView notesListView; private ArrayList<Note

我有Main.java活动,它拥有ListView(简单记事本应用程序)。我需要上下文菜单时,点击listview项目(单注)与“复制”。我有三张钞票

  • 长音符
  • URL注释
  • 短笺
  • 只有在URL上,单击时上下文菜单才会弹出。为什么?

    public class Main extends Activity {
        private Button createButton;
        private ListView notesListView;
        private ArrayList<Note> notes;
        private Note selectedNote;
        public static final int noteEditorRequest = 1;
        public static final int noteCreateReqeust = 2;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            notes = NoteFileAdapter.getNotes();
            selectedNote = null;
    
            if (notes == null) {
                Toast.makeText(this, R.string.err_read, Toast.LENGTH_LONG).show();
                notes = new ArrayList<Note>();
            }
    
            createButton = (Button) findViewById(R.id.mainCreateButton);
            createButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Main.this, NoteEditor.class);
                    intent.putExtra("request", noteCreateReqeust);
                    startActivityForResult(intent, noteCreateReqeust);
                }
            });
    
            notesListView = (ListView) findViewById(R.id.mainNotesListView);
            notesListView.setAdapter(new MainNoteAdapter(this, notes));
            registerForContextMenu(notesListView);
        }
    
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {       
            AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
            selectedNote = (Note) notesListView.getItemAtPosition(info.position);
    
            menu.setHeaderTitle(R.string.contextmenu_title);
            menu.add(R.string.contextmenu_copy).setOnMenuItemClickListener(
                    new OnMenuItemClickListener() {
                        @Override
                        public boolean onMenuItemClick(MenuItem item) {
                            ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                            clipboardManager.setText(selectedNote.getTextContent());
                            return true;
                        }
                    });
        }
    
    public类主扩展活动{
    私有按钮创建按钮;
    私有列表视图notesListView;
    私人数组列表注释;
    私人票据选择票据;
    公共静态最终int noteEditorRequest=1;
    公共静态最终int noteCreateReqeust=2;
    /**在首次创建活动时调用*/
    @凌驾
    创建时的公共void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    notes=NoteFileAdapter.getNotes();
    selectedNote=null;
    if(notes==null){
    Toast.makeText(this,R.string.err_read,Toast.LENGTH_LONG).show();
    notes=新的ArrayList();
    }
    createButton=(按钮)findViewById(R.id.mainCreateButton);
    createButton.setOnClickListener(新的OnClickListener(){
    @凌驾
    公共void onClick(视图v){
    Intent Intent=新Intent(Main.this、noteditor.class);
    intent.putExtra(“请求”,noteCreateReqeust);
    startActivityForResult(意图,注释CreateRequest);
    }
    });
    notesListView=(ListView)findViewById(R.id.mainNotesListView);
    setAdapter(新的MainNoteAdapter(this,notes));
    registerForContextMenu(notesListView);
    }
    @凌驾
    public void onCreateContextMenu(ContextMenu菜单,视图v,ContextMenuInfo菜单信息){
    AdapterContextMenuInfo信息=(AdapterContextMenuInfo)菜单信息;
    selectedNote=(Note)notesListView.getItemAtPosition(info.position);
    menu.setheadertile(R.string.contextmenu_title);
    menu.add(R.string.contextmenu\u copy).setOnMenuItemClickListener(
    新建OnMenuItemClickListener(){
    @凌驾
    公共布尔onMenuItemClick(菜单项){
    剪贴簿管理器剪贴簿管理器=(剪贴簿管理器)getSystemService(剪贴板_服务);
    clipboardManager.setText(selectedNote.getTextContent());
    返回true;
    }
    });
    }
    
    当长时间触摸“禁用”项时,您是否看到它们的背景从黄色变为白色?即使菜单没有弹出,是否调用了
    onCreateContextMenu()
    ?logcat中的任何信息?没有背景褪色(即使在注释/项上(使用高亮url),效果良好)。当菜单没有弹出onCreateContextMenu()时未调用。在logcat中没有任何有趣的内容。这些自定义列表项中是否包含可以获得焦点的内容?我不这么认为。自定义项包含:3x TextView+2x按钮。设置focusable=false不会生效。我有一个自定义列表项,其中的按钮工作方式与您想要的一样,按钮上的focusable=false。如果我想我没办法。