У меня есть действие Main.java, которому принадлежит ListView (простое приложение «Блокнот»).Мне нужно контекстное меню при нажатии на элемент списка (одна заметка) с «копией».У меня есть 3 заметки
- Длинная заметка
- 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;
}
});
}