Android 触摸按钮上没有声音

Android 触摸按钮上没有声音,android,button,touch,audio,Android,Button,Touch,Audio,如果我使用: final Button btnNught = (Button) findViewById(R.id.night); btnNught.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click btnNught.setPressed(true);

如果我使用:

    final Button btnNught = (Button) findViewById(R.id.night);
    btnNught.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click
            btnNught.setPressed(true);
        }
    });
如果我点击按钮,我会听到声音,但如果我使用:

    btnNught.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (btnNught.isPressed()) {
                btnNught.setPressed(false);
                return true;
            }
            else {
                btnNught.setPressed(true);
                return false;
            }
        }
    });
我触摸时听不到任何声音。 我哪里出错了

编辑: 我想创建两种状态的类似按钮的togglebutton:按下和未按下,当然有两种不同的颜色(正常的浅灰色未按下和按下时的绿色)

在这种情况下(如上所述),当我按下按钮时,我不会听到任何声音,但如果我使用onClick方法,我会听到“click”声音。
当我使用onTouch方法时,如何获得“点击”或“触摸”声音?

请说明,在什么条件下可以获得btnught.setPressed(true);在第二个例子中?如我所见,你根本不能按这个按钮。在“动作向下”时,您将使用该动作,因此按钮不会被按下


编辑:在侦听器的开始处放置一个断点,并在按钮使用的不同变体中输入它。并检查其行为。

请问,在什么条件下可以到达btnught.setPressed(true);在第二个例子中?如我所见,你根本不能按这个按钮。在“动作向下”时,您将使用该动作,因此按钮不会被按下


编辑:在侦听器的开始处放置一个断点,并在按钮使用的不同变体中输入它。然后检查行为。

您想播放声音的时候,您的问题不是很清楚,但我回答您的问题时假设您想在动作发生时播放。如果您计划创建切换按钮,您的代码应该如下所示

btnNught.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
       if(event.getAction()!=MotionEvent.ACTION_UP ||        
               event.getAction()!=MotionEvent.ACTION_DOWN) 
       {
             return false;
       }
       if(event.getAction()==MotionEvent.ACTION_DOWN)
       {
          btnNught.setPressed(true);
          //Set whatever color you want to set

       }
       else 
       {
          btnNught.setPressed(false);
       }
        return true;
    }
});

你想播放声音的时候,你的问题不是很清楚,但我回答你的问题时假设你想在动作发生时播放。如果你计划创建一个切换按钮,你的代码应该是这样的

btnNught.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
       if(event.getAction()!=MotionEvent.ACTION_UP ||        
               event.getAction()!=MotionEvent.ACTION_DOWN) 
       {
             return false;
       }
       if(event.getAction()==MotionEvent.ACTION_DOWN)
       {
          btnNught.setPressed(true);
          //Set whatever color you want to set

       }
       else 
       {
          btnNught.setPressed(false);
       }
        return true;
    }
});

尝试将
android:soundEffectsEnabled=“true”
添加到您的
标签。

尝试将
android:soundEffectsEnabled=“true”
添加到您的
标签。

以下行将播放单击声音:

btnNught.playSoundEffect(SoundEffectConstants.CLICK);

以下行将播放“咔嗒”声:

btnNught.playSoundEffect(SoundEffectConstants.CLICK);

这样做对我来说很有用:

btnNught.setSoundEffectsEnabled(true);
btnNught.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
       if(event.getAction()!=MotionEvent.ACTION_UP ||        
          event.getAction()!=MotionEvent.ACTION_DOWN) 
       {
           return false;
       }
       if(event.getAction()==MotionEvent.ACTION_DOWN)
       {
            btnNught.playSoundEffect(SoundEffectConstants.CLICK);
            //Set whatever color you want to set
       }
       else 
       {

       }
       return true;
    }
});

这样做对我来说很有用:

btnNught.setSoundEffectsEnabled(true);
btnNught.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
       if(event.getAction()!=MotionEvent.ACTION_UP ||        
          event.getAction()!=MotionEvent.ACTION_DOWN) 
       {
           return false;
       }
       if(event.getAction()==MotionEvent.ACTION_DOWN)
       {
            btnNught.playSoundEffect(SoundEffectConstants.CLICK);
            //Set whatever color you want to set
       }
       else 
       {

       }
       return true;
    }
});

听声音有两种方式

1使用内置声音

Go to Settings -> Sound -> 
And do the following settings 

sound profile set **Normal**
Touch sound set **ON**
  • 使用自定义声音

    播放用户定义的声音


  • 听声音有两种方式

    1使用内置声音

    Go to Settings -> Sound -> 
    And do the following settings 
    
    sound profile set **Normal**
    Touch sound set **ON**
    
  • 使用自定义声音

    播放用户定义的声音


  • 我想创建一个类似于TogleButton的按钮,具有两种状态。按下和“正常”,非按下状态,有两种不同的颜色。当你听不到任何声音时,它会被按下吗?看编辑后的答案。哦,还有一个问题:它什么时候应该发出噪音?更改按钮状态或更改为按下状态或在所有按下状态期间?请提出疑问。按钮是否处于按下状态?你把断点放在监听器的开头了吗?它不是偶然工作两次吗?我想创建两种状态的按钮。按下和“正常”,非按下状态,有两种不同的颜色。当你听不到任何声音时,它会被按下吗?看编辑后的答案。哦,还有一个问题:它什么时候应该发出噪音?更改按钮状态或更改为按下状态或在所有按下状态期间?请提出疑问。按钮是否处于按下状态?你把断点放在监听器的开头了吗?它不是偶然工作两次吗?和以前一样。没有声音。您是否听到其他应用程序发出的声音?它能像您的音量设置那样简单吗?如果设置不允许,应用程序将无法发出声音。起初我认为这可能是个问题。但在其他应用中,声音与以前一样。没有声音。您是否听到其他应用程序发出的声音?它能像您的音量设置那样简单吗?如果设置不允许,应用程序将无法发出声音。起初我认为这可能是个问题。但在其他应用程序中,声音是我的问题。我希望现在的问题正是:)我编辑了我的问题。我希望现在的问题正是:)