2010-04-18 15 views
5

'a bastığında içerik menüsünü gösterme MovementMethodLinkMovementMethod olarak ayarlanmış bir TextView var. TextView'a eklenen metin, normal metin ve URL'lerin birleşimidir. URL'ler için, adresi kopyalamak gibi şeyler yapmak için URL'ye uzun basıldığında bir içerik menüsü sunmak istiyorum. LinkMovementMethod kaynağına bir göz attım ama geçersiz kılmak için uzun süre basılmış bir kod yok gibi görünüyor. Bunu nasıl gerçekleştireceğinize dair herhangi bir fikir var mı?Bağlantı uzunluğunun TextView

+0

Ayrıca ([bağlam menüsünden kopyalama uygulamak] için bu soruya bakmak isteyebilirsiniz http://stackoverflow.com/questions/2226836/how-can-i-write-my-own-context -Menü-için-kopyala-yapıştır). Bir cevap atm yok, ama ben bir – Casebash

cevap

13

Sadece registerForContextMenu örneğin kullanabilirsiniz: olaylara aktarmak

TextView tv = new TextView(this); 
    registerForContextMenu(tv); 

ve sonra bakış kimliği kullanabilirsiniz bir menü

@Override 
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 
super.onCreateContextMenu(menu, v, menuInfo); 
      // Create your context menu here 
    menu.setHeaderTitle("Context Menu"); 
    menu.add(0, v.getId(), 0, "Action 1");   
} 

oluşturmak için onCreateContextMenu geçersiz olduğunu Olay olarak adlandırılan görünümü ayırt etmek için bir menü maddesinin basılmasıyla oluşur.

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    // Call your function to preform for buttons pressed in a context menu 
    // can use item.getTitle() or similar to find out button pressed 
    // item.getItemID() will return the v.getID() that we passed before 

} 
+0

bulmaya çalışıyorum Sadece bir URL sadece uzun basılı olduğunda bir bağlam menüsü göstermek istiyorum, böylece 'Kopya' ve 'gibi bu bağlantıya özgü bazı seçenekler verebilir ' –

+1

@Al: Bir içerik menüsü kaydederseniz, sadece uzun bir basışta görünür. – Casebash