Android: l'Ouverture d'un ContextMenu de onLongPress dans la coutume WebView

Je suis en train d'essayer d'obtenir une mesure WebView qui affiche un ContextMenu quand il est pressé pour un temps plus long. Comme la valeur par défaut WebView classe affiche uniquement une ContextMenu lorsqu'un lien est longPressed, j'ai écrit ma propre classe pour remplacer ce comportement:

public class MyWebView extends WebView {
    Context context;
    GestureDetector gd;

    public MyWebView(Context context, AttributeSet attributes) {
        super(context, attributes);
        this.context = context;
        gd = new GestureDetector(context, sogl);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return gd.onTouchEvent(event);
    }

    GestureDetector.SimpleOnGestureListener sogl =
                new GestureDetector.SimpleOnGestureListener() {

        public boolean onDown(MotionEvent event) {
            return true;
        }

        public void onLongPress(MotionEvent event) {
            //The ContextMenu should probably be called here
        }
    };
}

Cela fonctionne sans problèmes la appuyez de manière prolongée est détecté et le onLongPress méthode est appelée, mais je suis à une perte quand il s'agit de l'affichage de la ContextMenu. J'ai essayé de le faire de la manière habituelle dans mon Activité:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);

    MyWebView mwv = (MyWebView) findViewById(R.id.mwv);
    registerForContextMenu(mwv);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
                    ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context, menu);
}

Cependant, quand j'appuyez de manière prolongée sur le MyWebView dans l'émulateur, il ne se passe rien. Que dois-je faire un appel à partir de onLongPress() pour afficher le ContextMenu?

OriginalL'auteur jbaiter | 2011-02-03