我有一些TextView
s表示每个共享一个OnLongClickListener
Android:如何将'视图'转换为'textview'?
内onLongClick
事件,我要确定哪些TextView
触发事件。
然而,被定义的事件为:
public boolean onLongClick(View view)
我试图铸造view
到TextView
,但没有奏效。
如何获取触发OnLongClick
事件的小部件?
我有一些TextView
s表示每个共享一个OnLongClickListener
Android:如何将'视图'转换为'textview'?
内onLongClick
事件,我要确定哪些TextView
触发事件。
然而,被定义的事件为:
public boolean onLongClick(View view)
我试图铸造view
到TextView
,但没有奏效。
如何获取触发OnLongClick
事件的小部件?
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!");
}
使用view.getId()方法获得点击视图的ID。
public boolean onLongClick(View v) {
switch(v.getId()) {
case R.id.first_text_view: // do things here; break;
...
}
return true;
}
的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;
}
有什么错误你越来越?通常这应该工作。如果你设置了yourTextView.setOnLongClickListener(this)
,那么public boolean onLongClick(View view)
会触发,你不需要施放它。
如何将'view'强制转换为'TextView'不起作用?你有没有尝试检查'if(view instanceof TextView)',以确保它不是从错误的视图触发的? –
我试图将视图投射到TextView,但没有奏效。 ..........你是否收到任何错误,请分享错误日志。否则分享onLongClick()的代码 –