gpt4 book ai didi

java - 如何使用 setOnClickListener 和 setOnTouchListener +

转载 作者:行者123 更新时间:2023-12-01 22:46:44 26 4
gpt4 key购买 nike

为什么我的程序中不能使用setOnClickListener和setOnTouchListener?OnTouchListener 运行良好,但我无法运行新 Activity ?我做错了什么?

for (final ShopCategory category : gallery.getShopCategories()) {
final Button button = new Button(this);

//...等等

button.setOnClickListener(new OnClickListener() {                   
@Override
public void onClick(View v) {
runNewActivity(gallery.getShops(), category);
}
});

button.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {

button.setTextColor(Color.parseColor("#333333"));
button.setBackgroundColor(Color.parseColor("#ffcc33"));
return true;
}
else if (event.getAction() == MotionEvent.ACTION_UP ) {
button.setTextColor(Color.WHITE);
button.setBackgroundColor(Color.parseColor("#333333"));

}


return false;
}
});
categoriesButtonsLL.addView(button);

最佳答案

您可以使用可绘制选择器来更改按钮的显示状态而不是监听触摸事件,从而做得更好。(在 res/drawable 中创建一个选择器 xml 文件,例如“button_bg.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/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

现在像这样编辑您的代码:

for (final ShopCategory category : gallery.getShopCategories()) {
final Button button = new Button(this);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
runNewActivity(gallery.getShops(), category);
}
});
button.setBackgroundResource(R.drawable.button_bg);
categoriesButtonsLL.addView(button);
}

关于java - 如何使用 setOnClickListener 和 setOnTouchListener +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com