myc_100 2013-01-10 05:06 采纳率: 10%
浏览 4186
已采纳

使用java代码如果获取所有的Button,例如childAt()方法?

我根据Button当前的高度,想为所有的Button重新设置背景高度,用下面的方法获取所有的Button对象:

for(int i=0;i<layout.getChildCount();i++)
{
Button b = layout.childAt(i);
b.setHeight(x);
}

我是想获取所有嵌套布局中的所有Button,但是在一些布局中既有Button又有 textviews。如何能只获取Button,而没有其它的?
谢谢!

  • 写回答

4条回答

  • Curie-87 2013-01-14 02:31
    关注

    添加一个新类和 extend 按钮,然后重新你需要的方法。
    在我的例子中我重新了 setBackgroundDrawable()

    @Override
    public void setBackgroundDrawable(Drawable background) {
    
    
    Log.d("button","setting new background  ");
    Drawable[] layers = new Drawable[5];
    Resources resources = getResources();
    
    
    
    
    layers[0] = resources.getDrawable(R.drawable.outer_rectangle);
    layers[1] = resources.getDrawable(R.drawable.inner_rectangle);
    layers[2] = resources.getDrawable(R.drawable.upper_ovel);
    layers[3] = resources.getDrawable(R.drawable.gradient_fill);
    layers[4] = resources.getDrawable(R.drawable.lower_ovel);
    
    LayerDrawable layerDrawable = new LayerDrawable(layers);
    
    layerDrawable.setLayerInset(0, 0, 0, 0, 0);
    layerDrawable.setLayerInset(1, 3, 3, 3, 0);
    layerDrawable.setLayerInset(2, 3, 15, 3, 25);
    layerDrawable.setLayerInset(3, 3, 23, 3, 0);
    layerDrawable.setLayerInset(4, 4, 60, 4, -5);
    
    
    
    super.setBackgroundDrawable(layerDrawable);
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)