Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式获取视图的名称,例如它是否';Android中onClick回调中的文本视图或视图参数按钮?_Android - Fatal编程技术网

如何以编程方式获取视图的名称,例如它是否';Android中onClick回调中的文本视图或视图参数按钮?

如何以编程方式获取视图的名称,例如它是否';Android中onClick回调中的文本视图或视图参数按钮?,android,Android,在特定的类中,从许多地方回调即将到来,我只想知道它是文本还是按钮,这样我就可以相应地设置数据 注意:我不是说父布局,我想知道事件单击发生的确切名称 如果我这样做:Log.d(“你好”,“最后点击了:”+view?.id) 接下来是: D: Clicked finally: 2131296625 您可以这样做: if(view.javaClass.simpleName==Button::class.java.simpleName){ //这是一个按钮 }else if(view.javaClas

在特定的类中,从许多地方回调即将到来,我只想知道它是文本还是按钮,这样我就可以相应地设置数据

注意:我不是说父布局,我想知道事件单击发生的确切名称

如果我这样做:
Log.d(“你好”,“最后点击了:”+view?.id)

接下来是:

D: Clicked finally: 2131296625

您可以这样做:

if(view.javaClass.simpleName==Button::class.java.simpleName){
//这是一个按钮
}else if(view.javaClass.simpleName==TextView::class.java.simpleName){
//这是一个文本视图
}

请注意,如果您使用的是
按钮
文本视图
的任何子类,则此选项将不起作用。您需要明确指定要检查的类。

您可以执行以下操作:

if(view.javaClass.simpleName==Button::class.java.simpleName){
//这是一个按钮
}else if(view.javaClass.simpleName==TextView::class.java.simpleName){
//这是一个文本视图
}

请注意,如果您使用的是
按钮
文本视图
的任何子类,则此选项将不起作用。您需要明确指定要检查的类。

如果您使用的是Kotlin,只需检查视图是否为
按钮
图像
使用
是否类似于运算符:

when(view) {

    is Button -> {
       // a Button is clicked.
      }

    is AppCompatImageView -> {
     // an Image is clicked.
     }

    else -> {
    // any other view is clicked.
    }

}

如果您使用的是Kotlin,只需检查视图是否为
按钮
图像
,使用
查看是否为类似于操作员的:

when(view) {

    is Button -> {
       // a Button is clicked.
      }

    is AppCompatImageView -> {
     // an Image is clicked.
     }

    else -> {
    // any other view is clicked.
    }

}

您可以将此id与视图id进行比较,如
view?.id==R.id.button
@AlphaOne我知道,但我想批量执行。就像来自任何类id按钮的任何时候,它将转到if条件,否则为else。简而言之,我很想知道确切的视图名称,比如LinearLatyout,或者AppCompatImageButton@Sychi辛格:我想你可以用我贴的答案来回答。请将答案标记为已解决。您可以将此id与视图id进行比较,如
view?.id==R.id.button
@AlphaOne我知道,但我想批量执行。就像来自任何类id按钮的任何时候,它将转到if条件,否则为else。简而言之,我很想知道确切的视图名称,比如LinearLatyout,或者AppCompatImageButton@Sychi辛格:我想你可以用我贴的答案来回答。请将答案标记为已解决。假设我使用的是“androidx.appcompat.widget.AppCompatImageView”,那么我该怎么做?您可以使用
AppCompatImageView::class.java.simplename
。如果您更喜欢全名,还可以比较name属性。假设我使用的是“androidx.appcompat.widget.AppCompatImageView”,那么我该怎么做呢?可以使用
AppCompatImageView::class.java.simplename
。如果您更喜欢全名,还可以比较name属性。