Android-ListView-ContextMenu不';每个列表项上都没有显示
我有Main.java活动,它拥有ListView(简单记事本应用程序)。我需要上下文菜单时,点击listview项目(单注)与“复制”。我有三张钞票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
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。如果我想我没办法。