2017-07-28 3 views
0

Ich habe eine Sammlung von textViews in einem LinearLayout, ich möchte sie auf lange drücken auswählen. Ich habe versucht, diesen Code, aber es hat nicht funktioniert ...Wie kann ich mehrere textViews aus der Sammlung von TextViews auswählen, die nicht in der Listenansicht auf lange drücken

textView.setOnLongClickListener(new View.OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 
      // TODO Auto-generated method stub 
      textView.setSelected(true); 
      selected = 1; 
      return false; 
     } 
    }); 
    textView.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if(selected == 1){ 
       if(textView.getSelected()) 
        textView.setSelected(false); 
       else 
        textView.setSelected(true); 
      } 
     } 
    }); 

ich für setOnLongPressListener suchen versucht, aber nicht so etwas finden. Bitte schlagen Sie mir irgendwelche Methoden für die Aktion vor, die ich will.

+0

Haben Sie 'android: textIsSelectable =" true "' für TextView hinzugefügt? –

+0

nein. wird oben Code arbeiten. wenn ich es mache ..? –

+0

Ich habe es versucht, es ist ein Text TextView auswählen, aber ich möchte den TextView selbst auswählen. –

Antwort

0

Ich nehme an, Sie möchten Textview markieren, wenn Sie lange drücken. Versuchen Sie folgendes:

textView.setOnLongClickListener(new View.OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View view) { 
      boolean selected = !view.isSelected(); 
      view.setSelected(selected); 
      view.setBackgroundColor(selected ? Color.RED : Color.TRANSPARENT); 
      return true; 
     } 
    }); 
+0

ja es funktionierte für mich danke ... –

+0

ich bekomme ein problem in ihrer lösung, das ist, dass, wenn ich die farbe des hintergrundes ändern die GradientDrawable, die ich in den hintergrund von textView gesetzt ist verschwindend. ist, dass jede Methode, um eine transparente Ebene der Farbe der Breite 100% und Höhe gleich Höhe von TextView, die Wrap_content ist. Wie in WhatsApp Messenger, wenn wir Nachrichten auf lange drücken ... –

+0

Mein Code wird den Hintergrund Ihrer Textansicht ändern. Sie sollten dies zu einer anderen Frage stellen. – santalu

0

Sie haben wahr in der Textview der klickbare Eigenschaft in der XML-Datei zu setzen:

<TextView 
android:clickable="true"/> 

Grüße.

0

Ändern Sie den Rückgabetyp false zu True innerhalb von SetOnLongClickListener().

Es löst die Methoden setOnLongClickListener() und setOnClickListener() aus, wenn Sie false zurückgeben. Das kann also das Problem sein.

Sie können die Farbe des Hintergrunds onLongClick ändern.

Verwandte Themen