2011-11-22 89 views
1

我有一些TextView s表示每個共享一個OnLongClickListenerAndroid:如何將'視圖'轉換爲'textview'?

onLongClick事件,我要確定哪些TextView觸發事件。

然而,被定義的事件爲:

public boolean onLongClick(View view) 

我試圖鑄造viewTextView,但沒有奏效。

如何獲取觸發OnLongClick事件的小部件?

+0

如何將'view'強制轉換爲'TextView'不起作用?你有沒有嘗試檢查'if(view instanceof TextView)',以確保它不是從錯誤的視圖觸發的? –

+0

我試圖將視圖投射到TextView,但沒有奏效。 ..........你是否收到任何錯誤,請分享錯誤日誌。否則分享onLongClick()的代碼 –

回答

9

View應該是你的TextView。

嘗試是這樣的:

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

爲了驗證上述if語句是有效的,你可以嘗試這樣的第一次運行它:

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

使用view.getId()方法獲得點擊視圖的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,所有widget都是從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)會觸發,你不需要施放它。

相關問題