2011-11-22 16 views
1

は、私は、それぞれがonLongClickイベント内の単一OnLongClickListenerAndroid: 'view'を 'textview'に変換するには?

を共有することがTextView秒の数を持って、私はイベントをトリガしたTextViewを識別します。

しかし、イベントは次のように定義されます

public boolean onLongClick(View view) 

私はTextViewからviewをキャストしようとしたが、それは動作しませんでした。

OnLongClickイベントを引き起こしたウィジェットはどうすれば入手できますか?

+0

'TextView'への' view'のキャストはどうしましたか?間違ったビューからトリガされていないことを確認するために 'if(view instanceof TextView)'をチェックしてみましたか? –

+0

私はTextViewにビューをキャストしようとしましたが、うまくいきませんでした。 ..........あなたは何らかのエラーを出していますか?plsはエラーログを共有しています。そうでなければonLongClick()のコードを共有する –

答えて

9

Viewは、TextViewである必要があります。

このような何かを試してみてください:へ

if(view instanceof TextView) { 
    Log.e("MyTag", "It's a TextView!"); 
} 
0

利用view.getId()メソッド:

if(view instanceof TextView) { 
    TextView textView = (TextView) view; 
    //Do your stuff 
} 

は、上記のif文は、あなたがこの最初のようにそれを実行してみることができ有効であることを確認するにはクリックされたビューのIDを取得します。

0
public boolean onLongClick(View v) { 
     switch(v.getId()) { 
      case R.id.first_text_view: // do things here; break; 
       ... 
     } 
     return true; 
    } 
0

TextViewすでにViewで、すべてのウィジェットはViewから拡張しているので、あなたが必要なものすべてが、このようなあなたのTextViewsのid上のスイッチである:

public boolean onLongClick(View v) { 
     switch(v.getId()) { 
      case R.id.txt1: // your code for the textView which have the id R.id.txt1 ...; 
        break; 
      case R.id.txt2: // your code for the textView which have the id R.id.txt2 ...; 
        break; 
       //... etc 
     } 
     return true; 
    } 
0

エラー何あなたは得ている?通常これでうまくいくはずです。 yourTextView.setOnLongClickListener(this)を設定した場合、public boolean onLongClick(View view)がトリガーとなり、キャストする必要はありません。

関連する問題