2017-07-28 14 views
0

textViewsのコレクションをLinearLayoutに入れて、長押ししてもらいたいです。私はsetOnLongPressListenerを検索しようとしましたが、そのようなものを見つけられませんでした長時間押すとリストビューにないtextViewsのコレクションから複数のtextViewを選択する方法

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

...私はこのコードを試してみましたが、それはうまくいきませんでした。 私が望むアクションの方法を提案してください。

+0

TextViewに 'android:textIsSelectable =" true "'を追加しましたか? –

+0

番号。上記の作業をコード化します。もし私がそれをすれば..? –

+0

私はtextViewのいくつかのテキストを選択しようとしましたが、textView自体を選択したいと思います。 –

答えて

0

長押しで選択すると、テキストビューを強調表示すると仮定します。試してみてください:

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

私はあなたの解決策に問題が発生しています。これは、背景の色を変更すると、textViewの背景に設定したGradientDrawableが消えてしまいます。幅100%の高さの透明なレイヤーと、wrap_contentのTextViewの高さに等しい高さを設定する方法です。長い押さえでメッセージを選択するとwhatsappメッセンジャーのようになります... –

+0

私のコードはあなたのtextviewの背景を変更します。別の質問でこれを尋ねるべきです。 – santalu

0

あなたのxmlファイル内のTextViewのクリッカブルプロパティにを配置する必要があります:

<TextView 
android:clickable="true"/> 

よろしく。

0

をsetOnLongClickListener()内でtrueに変更します。

falseを返すと、setOnLongClickListener()メソッドとsetOnClickListener()メソッドの両方がトリガーされます。だから問題になるかもしれません。

バックグラウンドの色をonLongClickに変更することができます。

関連する問題