2 ssummeraw ssummeraw 于 2013.04.02 11:41 提问

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

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

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个回答

pennons
pennons   2013.04.02 14: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);

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

pandapia
pandapia   2016.06.27 14:47

没怎么细看,你设置监听了吗?ID.setOnClickListener(this);这个

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!