5

に設定されたTextViewを持っています。に追加されるテキストは、通常のテキストとURLの組み合わせです。URLについては、アドレスのコピーなどでURLが長押しされたときにコンテキストメニューを提供したいと思います。ソースを調べましたが、オーバーライドできる長押しの関連コードがないようです。これを達成する方法について何かアイデアはありますか?MovementMethodLinkMovementMethodTextViewLinkMovementMethod

4

1 に答える 1

13

単純に registerForContextMenu を使用できます。

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

次に、onCreateContextMenu をオーバーライドしてメニューを作成します

@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");        
}

どのビューがイベントを呼び出したかを区別するために、ビューの ID を使用して、メニュー項目を押したときに発生するイベントに渡すことができます。

@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

}
于 2010-04-19T22:38:48.893 に答える