Android:如何将'view'转换为'textview'?

时间:2011-11-22 09:26:53

标签: android view textview onlongclicklistener

我有多个TextView,每个{1}}共享一个OnLongClickListener

onLongClick事件中,我想确定哪个TextView触发了该事件。

但是,该事件定义为:

public boolean onLongClick(View view) 

我尝试将view投射到TextView,但这不起作用。

如何获取触发OnLongClick事件的窗口小部件?

5 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:0)

使用view.getId()方法获取点击视图的ID。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

TextView 已经一个View,所有小部件都从View延伸,所以您需要的只是{{1}上的切换像你这样的TextViews:

id

答案 4 :(得分:0)

你得到的错误是什么?通常这应该工作。如果您设置了yourTextView.setOnLongClickListener(this),那么public boolean onLongClick(View view)将会触发,您无需进行投射。