Android中自定义视图的“instanceof”方法?

Posted

技术标签:

【中文标题】Android中自定义视图的“instanceof”方法?【英文标题】:Method like "instanceof" for custom views in Android? 【发布时间】:2013-03-30 02:29:12 【问题描述】:

我在 App 运行期间对一些布局进行了膨胀,并将它们存储在 View 类型的变量中。我知道我可以在膨胀后为视图设置一个 Tag 并检查它以检测它的类型,但是还有另一个如何检测它?例如像instanceof这样的方法?

【问题讨论】:

您是在说这个:***.com/questions/2695646/… 还是别的什么? @MorrisonChang 哦,不...。它是关于从 xml 创建和使用 customview。但我的问题是关于如何检测我的 customview 是从哪个布局膨胀的? @hasanghaforian 你的意思是要获取膨胀的xml文件的文件名? @Pragnani 是的,如果可能的话。 @hasanghaforian 没有什么是不可能的...只需为您的视图设置 contentDescription,并根据 contentDescription 识别您的视图 【参考方案1】:

试试这样的

 View yourView1=(View)findViewById(R.id.yourView1);

     boolean isMyView=false; 
        try
           YourView yv=(YourView)yourView1;
     isMyView=true;
        
        catch (ClassCastException e)
        
     isMyView=false; 
            e.printStackTrace();
        

    if(isMyView)
       
         //OK it is yourView
        

【讨论】:

这不适用于从 .xml 文件膨胀的视图。

以上是关于Android中自定义视图的“instanceof”方法?的主要内容,如果未能解决你的问题,请参考以下文章

android在textview中自定义文本[重复]

单击列表视图中自定义单元格中按钮的侦听器

如何在Android中自定义相机布局?

《转载-两篇很好的文章整合》Android中自定义控件

如何在 Qt 中自定义列表视图

如何在 iOS 中自定义权限请求视图