2011-11-22 84 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)会触发,你不需要施放它。

相关问题