2015-12-24 3 views
0

Je veux fournir des gestionnaires personnalisés qui coupent, copient du texte.Edittext qui fait la sélection sur un clic long mais n'affiche pas le menu contextuel?

cible sur Longclick

  1. Menu contextuel ne devrait pas apparaître.
  2. Le texte peut être sélectionné avec des suiveurs (ou des Draggers).

enter image description here

[UPDATE]

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    edittext = (EditText) findViewById(R.id.notetext); 
    . . . . 

    edittext.setCustomSelectionActionModeCallback(new ActionMode.Callback() 
    { 
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
      return false; 
     } 

     public void onDestroyActionMode(ActionMode mode) { 
     } 

     public boolean onCreateActionMode(ActionMode mode, Menu menu) 
     { 
      return true; 
     } 

     public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
      return false; 
     } 
    }); 

    . . . . 

} 

@Override 
public void onSupportActionModeStarted(android.support.v7.view.ActionMode mode) { 
    super.onSupportActionModeStarted(mode); 
    View v = new View(MainActivity.this); 
    mode.setCustomView(v); 
    mode.getMenu().clear(); 
    mode.getMenu().close(); 
    mode.finish(); 
} 

L'utilisation ci-dessus morceau de code que je suis en mesure de supprimer Tout sélectionner, Couper, Copier et Paste.But il affiche toujours "Sélection du texte"

L'image ci-dessous montre ce dont vous avez besoin.

enter image description here

Répondre

2

vous voulez vous débarrasser de la ActionMode? et créez votre propre ??

vous pouvez l'annuler et être averti lorsque le défaut est sur le point d'être affiché

@Override 
    public void onSupportActionModeStarted(ActionMode mode) {  
    super.onSupportActionModeStarted(mode); 
    //you can add your custom ui here 
    mode.setCustomView(....);// it takes a view 
} 

si vous voulez le fermer alors que vous appelez mode.finish(); vous pouvez l'appeler là pour fermer si ou terminer si vous n'en a pas besoin. Quand il est sur le point de mourir il appelle ça onSupportActionModeFinished (Mode ActionMode) `les méthodes que j'ai indiquées sont pour les bibliothèques de support, j'espère que vous le savez. Le reste est du fromage

+0

Question mise à jour. S'il vous plaît suggérer quelque chose. –

+1

mode.finish() fonctionne mais il a l'air moche, le menu arrive et se cache et toute la vue est secouée, et la sélection n'est pas retenue – Redman