2017-07-28 59 views
0

我有一個textViews的集合LinearLayout,我希望他們在長按時進行選擇。我想這個代碼,但沒有奏效...如何從textViews集合中選擇多個textViews而不是在listview上長時間按下

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

我試圖尋找setOnLongPressListener,但沒有發現這樣的事情。 請給我建議我想要的行動的任何方法。

+0

您是否爲TextView添加了'android:textIsSelectable =「true」'? –

+0

沒有。將上面的代碼工作。如果我會做... ..? –

+0

我試過了,它選擇了textView的一些文本,但我想選擇textView本身。 –

回答

0

我假設你想在長按選中時突出顯示textview。試試這個:

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

是的,它爲我工作,謝謝... –

+0

我在你的解決方案,這是當我改變背景顏色的GradientDrawable,我設置爲textView的背景正在消失的問題。是任何方法來放置一個寬度爲100%,高度等於TextView高度的透明層,它是wrap_content。就像在whatsapp messenger上,當我們長時間選擇郵件時... –

+0

我的代碼會改變你的textview的背景。你應該問另一個問題。 – santalu

0

你必須把真正在TextView中的點擊屬性在XML文件中:

<TextView 
android:clickable="true"/> 

問候。

0

將您的返回類型false更改爲setOnLongClickListener()中的true。

如果返回false,則會觸發both-setOnLongClickListener()和setOnClickListener()方法。所以這可能是問題。

您可以將onLongClick背景的顏色更改爲不同的顏色。