【问题标题】:Android: How to convert 'view' to 'textview'?Android:如何将“视图”转换为“文本视图”?
【发布时间】:2011-11-22 09:26:52
【问题描述】:

我有多个TextViews,每个OnLongClickListeners 共享一个OnLongClickListener

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

然而,事件被定义为:

public boolean onLongClick(View view) 

我尝试将view 转换为TextView,但没有成功。

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

【问题讨论】:

  • 如何将view 转换为TextView 不起作用?您是否尝试先检查if (view instanceof TextView) 以确保它不是从错误的视图触发的?
  • 我尝试将视图投射到 TextView,但这不起作用。 .......... 你有任何错误吗,请分享错误日志。 else 分享 onLongClick() 的代码

标签: android view textview onlongclicklistener


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      public boolean onLongClick(View v) {
              switch(v.getId()) {
                  case R.id.first_text_view: // do things here; break;
                      ...
              }
              return true;
          }
      

      【讨论】:

        【解决方案4】:

        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;
            }
        

        【讨论】:

          【解决方案5】:

          您遇到什么错误?通常这应该工作。如果你设置了yourTextView.setOnLongClickListener(this),然后public boolean onLongClick(View view)就会触发,你不需要施放。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-06-26
            • 1970-01-01
            • 1970-01-01
            • 2011-11-04
            • 1970-01-01
            • 1970-01-01
            • 2011-07-29
            相关资源
            最近更新 更多