ssummeraw 2013-04-02 03:41 采纳率: 10%
浏览 7708
已采纳

设置背景图像使得按钮不能点击

我创建了一组按钮,当我给每个按钮设置背景图像时,就变成不可点击的了。为什么会这样呢?下面是我的代码:

LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout);
    LinearLayout rowLayout=null;
    Button[][] buttons = new Button[6][7]; 

    LayoutParams param = new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT,
            LayoutParams.FILL_PARENT,1);

    for (int i = 0; i<6; i++) 
    {
       rowLayout = new LinearLayout(this);
       rowLayout.setWeightSum(7);
       layoutVertical.addView(rowLayout,param);
        for(int j=0;j<7;j++)
        {
            buttons[i][j]=new Button(this);
            buttons[i][j].setText("1");

            buttons[i][j].setBackgroundResource(R.drawable.but_blue_clicked);
            rowLayout.addView(buttons[i][j],param);
            buttons[i][j].setClickable(true);
        }
    }
}
  • 写回答

2条回答 默认 最新

  • 空蝉- 2013-04-02 06:17
    关注

    这个应该不是不能点,应该是你设置图片后覆盖了系统button的样式,如果有监听点击事件应该是有效的。
    如果你是需要一个按钮的样式可以自己写一个
    像这样

    but_clicked.xml
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@drawable/play_press" />
        <item android:state_focused="true" android:drawable="@drawable/play_press" />
        <item android:drawable="@drawable/play" />
    </selector>
    

    然后 buttons[i][j].setBackgroundResource(R.drawable.but_clicked);

    不过你需要两张图片,分别是点击和未点击的图片

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥15 this signal is connected to multiple drivers怎么解决
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥60 关机时蓝屏并显示KMODE_EXCEPTION_NOT_HANDLED,怎么修?
  • ¥66 如何制作支付宝扫码跳转到发红包界面