Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用setOnClickListener和setOnTouchListener+;对于_Java_Android_Onclicklistener_Ontouchlistener - Fatal编程技术网

Java 如何使用setOnClickListener和setOnTouchListener+;对于

Java 如何使用setOnClickListener和setOnTouchListener+;对于,java,android,onclicklistener,ontouchlistener,Java,Android,Onclicklistener,Ontouchlistener,为什么我不能在程序中使用setOnClickListener和setOnTouchListener? OnTouchListener工作正常,但我无法运行新活动? 我做错了什么 for (final ShopCategory category : gallery.getShopCategories()) { final Button button = new Button(this); //。。。等 button.setOnClickListener(new OnCli

为什么我不能在程序中使用setOnClickListener和setOnTouchListener? OnTouchListener工作正常,但我无法运行新活动? 我做错了什么

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);

快猜。但是试着在你的onTouch中返回false。在ActionDown中返回true表示您已处理该事件,无需进一步处理。因此,如果ActionDown被处理,onClick永远不会发生。

这里是快速猜测。但是试着在你的onTouch中返回false。在ActionDown中返回true表示您已处理该事件,无需进一步处理。因此,如果ActionDown被处理,onClick永远不会发生。

这里是快速猜测。但是试着在你的onTouch中返回false。在ActionDown中返回true表示您已处理该事件,无需进一步处理。因此,如果ActionDown被处理,onClick永远不会发生。

这里是快速猜测。但是试着在你的onTouch中返回false。在ActionDown中返回true表示您已处理该事件,无需进一步处理。所以,如果处理了ActionDown,onClick永远不会发生。

您可以使用drawable selector更改按钮的显示状态,而不是侦听触摸事件,这样做会更好。 (在res/drawable中创建选择器xml文件,例如“button_bg.xml”):


您可以使用drawable selector来更改按钮的显示状态,而不是监听触摸事件,这样做会更好。 (在res/drawable中创建选择器xml文件,例如“button_bg.xml”):


您可以使用drawable selector来更改按钮的显示状态,而不是监听触摸事件,这样做会更好。 (在res/drawable中创建选择器xml文件,例如“button_bg.xml”):


您可以使用drawable selector来更改按钮的显示状态,而不是监听触摸事件,这样做会更好。 (在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);
}