Android:通过标签获取视图列表并更改特定按钮

Android:通过标签获取视图列表并更改特定按钮,android,object,button,Android,Object,Button,我正在编写一个自定义日历,我的日历是一个网格视图,它包含每天的一个按钮,每个按钮上都有一个onClick侦听器。每个都有一个表示日期的标记 我需要按特定标签(日期)在版面中找到按钮,然后使用它(将其内容更改为粗体) 因此,首先,我将获得与标记(事件日期)匹配的所有视图: 我知道Button和Java对象是不同的,但是有没有办法将这个对象转换成Button来使用呢?Object gridcellBUtton的值如下: renaldyalisys D/GridCellAdapter: object

我正在编写一个自定义日历,我的日历是一个网格视图,它包含每天的一个按钮,每个按钮上都有一个onClick侦听器。每个都有一个表示日期的标记

我需要按特定标签(日期)在版面中找到按钮,然后使用它(将其内容更改为粗体)

因此,首先,我将获得与标记(事件日期)匹配的所有视图:

我知道Button和Java对象是不同的,但是有没有办法将这个对象转换成Button来使用呢?Object gridcellBUtton的值如下:

renaldyalisys D/GridCellAdapter: object value android.widget.Button{eb9b3a4 VFED..C. ........ 0,0-68,72 #7f0c00bc app:id/calendar_day_gridcell}
instanceof
我不是Android程序员,但看起来你的问题是一个基本的Java问题。你是说:

我有一个对象作为超类
对象
返回。但是我知道实际上这个对象是
按钮
类的一个实例。我如何具体地将其称为
按钮
,而不是通常称为
对象

如果是这样,只需投射对象。从更一般的超级类型到更具体的类型是

或合并:

Button b = ( Button ) gridcells.get(0) ;
如果不太确定,请与专业操作员进行检查

如果您在代码中进行了大量转换,则可能存在设计问题。这通常源于不理解面向对象编程的基础知识。但有时一些铸造是有序的,无法避免

有关更多讨论,请参阅


如果我误解了问题,您可能需要重新编写您的问题。

您的问题太多了。我建议你把这个问题缩减到最基本的部分,以显示你的问题。谢谢你的回答,我会改变的code@BasilBourque请参阅编辑您是否考虑过将数据和ui组件分离?这会让你的生活变得更轻松。@B_C很乐意帮忙。铸造及铸造工艺研究。面向对象编程的关键概念。一旦您通过了这种奇特的语言,您将看到这些思想在编码中的非常实用的应用。
renaldyalisys D/GridCellAdapter: object value android.widget.Button{eb9b3a4 VFED..C. ........ 0,0-68,72 #7f0c00bc app:id/calendar_day_gridcell}
Object o = gridcells.get(0) ;
Button b = ( Button ) o ;
Button b = ( Button ) gridcells.get(0) ;
if( gridcells.get(0) instanceof Button ) {
    Button b = ( Button ) gridcells.get(0) ;
}