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); } } }
-
- 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 2016.06.27 14:47
没怎么细看,你设置监听了吗?ID.setOnClickListener(this);这个
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!