android 按钮点击效果中怎样设置按钮不能点击

想要把button设置开始就不能进行点击,在清单文件中button的设置如下
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止"
android:onClick="stopvideo"
android:enabled="false"
android:layout_marginRight="10dp"
阅读(...) 评论()11:41 提问
设置背景图像使得按钮不能点击
我创建了一组按钮,当我给每个按钮设置背景图像时,就变成不可点击的了。为什么会这样呢?下面是我的代码:
LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout);
LinearLayout rowLayout=
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);
按赞数排序
这个应该不是不能点,应该是你设置图片后覆盖了系统button的样式,如果有监听点击事件应该是有效的。
如果你是需要一个按钮的样式可以自己写一个
but_clicked.xml
&?xml version="1.0" encoding="utf-8"?&
&selector xmlns:android="/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);
不过你需要两张图片,分别是点击和未点击的图片
14609关注|1530收录
其他相似问题
相关参考资料Android按钮单击事件的四种常用写法总结
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下
很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同。因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值。
xml文件代码如下:
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" /&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" /&
四种方法分述如下:
匿名内部类:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
btn2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
自定义单击事件监听类:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
class MyClickListener implements OnClickListener {
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
case R.id.button2:
tst = Toast.makeText(TestButtonActivity.this, "", Toast.LENGTH_SHORT);
tst.show();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new MyClickListener());
btn2.setOnClickListener(new MyClickListener());
Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理
public class TestButtonActivity extends Activity implements OnClickListener {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
case R.id.button2:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
最后一种是我今天看到的一种写法,在XML文件中“显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法”
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button1" /&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button2" /&
这里在输完android:的时候按下 Alt+/ 会有 onClick 属性的提示, 但输入到 android:onClick=“ 的地方按下 Alt+/ 并没有提示 onClick 选项,让我突然觉得这里好像有点问题。
public class TestButtonActivity extends Activity {
Button btn1, btn2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
// 注意 这里没有 @Override 标签
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
case R.id.button2:
tst = Toast.makeText(this, "", Toast.LENGTH_SHORT);
tst.show();
这种写法整个代码中都不用声明button就可以实现button的单击事件。
以上就是四种实现按钮单击事件的方法。
粗略总结一下,就是按钮少的时候用匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类的。
按钮多的情况我还是选择第三种方法,方便。
关于第四种方法,我感觉最方便,但看了很多代码还是觉得写法不够大众化,感兴趣的朋友可以对此研究研究。相信会有不少收获。
希望本文所述对大家Android程序设计的学习有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Button单击改变背景图片效果,如何用选择器来实现?
该用户从未签到主题帖子e币
选择器selector是做不到单击之后改变背景的,只i能做到按下状态和普通状态改变背景。
像你附的那个图我觉得 ...
不能用selector改变Button背景颜色,我之前也是这种情况,用单选按钮来实现也是一种办法。
该用户从未签到主题帖子e币
明白了,你是想用选择器实现选中效果、按下效果是吧。给你个例子:
我用这种方法试过了,只能实现按下切换背景效果,但不能实现,选中后背景改变的效果
该用户从未签到主题帖子e币
必须用选择器?不用也可以的,最简单的一种方法,把每个按钮写在一个layout里,点击时改变layout的背景就可 ...
这是一种办法,但如果选择的按钮很多,单击后设置背景,如果点击其他的按钮,又要将之前的设置的背景复原,这样虽能实现,但挺麻烦的。以前也实现过,就是嫌麻烦,想用selector实现,结果发现Button的不能设置选中后改变背景图片的问题
该用户从未签到主题帖子e币
在你的slector的里面设置未点击之前的背景为默认背景,单击以后改变的背景,直接在button中引用背景就行了 ...
只是按下改变了背景,选中则背景没有改变
在selector里面state_selected是选中,state_pressed是按下事件,你都设置了吗?&
该用户从未签到主题帖子e币
原先有默认背景 ,点击之后重新设置一次 ,点击响应结束 还原不也可以吗
这个可以,但只能在代码中实现,我现在是想用选择器来实现
签到天数: 62 天连续签到: 1 天[LV.6]常住居民II主题帖子e币
只是按下改变了背景,选中则背景没有改变
在selector里面state_selected是选中,state_pressed是按下事件,你都设置了吗?
该用户从未签到主题帖子e币
不需要代码实现,radiobutton足以实现了
该用户从未签到主题帖子e币
radiobutton加9楼、11楼的就可以实现你的想要的效果了啊。
该用户从未签到主题帖子e币
RadioGroup + RadioButton来实现,以及在drawable目录下建XML的selector来设置背景,网上有很多实例的,可以搜搜
签到天数: 6 天连续签到: 1 天[LV.2]偶尔看看I主题帖子e币
自定义一个按钮不行吗?在自定义时setImageResource(int resId)方法可以改变你的背景图片 ,使用自定义的Button时监听点击事件,奇偶数轮换设置不就可以切换背景
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
如果不想麻烦就用RadioGroup里面有三个RadioButton就行了
签到天数: 4 天连续签到: 1 天[LV.2]偶尔看看I主题帖子e币
支持一下!
本人菜鸟,学习一下
签到天数: 2 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
res中创建drawable文件夹,创建xx.xml文件里面这样写&?xml version=&1.0& encoding=&utf-8&?& &selector xmlns:android=&/apk/res/android& && &&&&item android:state_focused=&true& android:drawable=&@drawable/点击后的图片&&&/item&& &&&&item android:state_pressed=&true& android:drawable=&@drawable/点击后的图片&&&/item& & & & & &item android:drawable=&@drawable/点击前的图片&&&/item& &/selector&
社区认证会员
社区认证会员
QQ已认证,此人靠谱
推荐阅读热门话题
619871824415413370320269258256251249232223215715
1&小时前昨天&23:59昨天&22:01昨天&22:00昨天&21:16昨天&20:48昨天&19:30昨天&19:24昨天&17:06昨天&16:46昨天&16:21昨天&15:59昨天&15:36昨天&15:23昨天&15:05昨天&09:50
Powered by
扫一扫 关注eoe官方微信

我要回帖

更多关于 android 按钮点击事件 的文章

 

随机推荐