Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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 如何在触摸按钮时启用声音效果?_Java_Android_Ontouchlistener_Soundeffect_Onclicklistener - Fatal编程技术网

Java 如何在触摸按钮时启用声音效果?

Java 如何在触摸按钮时启用声音效果?,java,android,ontouchlistener,soundeffect,onclicklistener,Java,Android,Ontouchlistener,Soundeffect,Onclicklistener,如果我实现了OnClickListener,则单击按钮时,音效会起作用。在实现OnTouchListener时,触摸它时音效不起作用。那么,如何在实现OnTouchListener时启用声音效果呢 编辑: 以下是我使用单击方法时的代码: public class CalculatorActivity extends Activity implements OnClickListener { //... private Button btn1; private EditTe

如果我实现了
OnClickListener
,则单击按钮时,音效会起作用。在实现
OnTouchListener
时,触摸它时音效不起作用。那么,如何在实现
OnTouchListener
时启用声音效果呢

编辑:

以下是我使用单击方法时的代码:

public class CalculatorActivity extends Activity implements OnClickListener
{
    //...
    private Button btn1;
    private EditText edLCD;
    //...

    public void onCreate(Bundle savedInstanceState)
    {
        //...
        btn1 = (Button) findViewById(R.id.d1);
        btn1.setOnClickListener(this);

        edLCD = (EditText) findViewById(R.id.edLCD);
    }

    //...

    public void onClick(View v)
    {
        edLCD.setText(edLCD.getText().toString() + "1");
    }
}
public class CalculatorActivity extends Activity implements OnTouchListener
{
    //...
    private Button btn1;
    private EditText edLCD;
    //...

    public void onCreate(Bundle savedInstanceState)
    {
        //...
        btn1 = (Button) findViewById(R.id.d1);
        btn1.setOnTouchListener(this);

        edLCD = (EditText) findViewById(R.id.edLCD);
    }

    //...

    public boolean onTouch(View v, MotionEvent event)
    {
        if(event.getAction() == MotionEvent.ACTION_DOWN)
        {
            edLCD.setText(edLCD.getText().toString() + "1");
        }
        return true;
    }
}
如果我使用触摸法,下面是代码:

public class CalculatorActivity extends Activity implements OnClickListener
{
    //...
    private Button btn1;
    private EditText edLCD;
    //...

    public void onCreate(Bundle savedInstanceState)
    {
        //...
        btn1 = (Button) findViewById(R.id.d1);
        btn1.setOnClickListener(this);

        edLCD = (EditText) findViewById(R.id.edLCD);
    }

    //...

    public void onClick(View v)
    {
        edLCD.setText(edLCD.getText().toString() + "1");
    }
}
public class CalculatorActivity extends Activity implements OnTouchListener
{
    //...
    private Button btn1;
    private EditText edLCD;
    //...

    public void onCreate(Bundle savedInstanceState)
    {
        //...
        btn1 = (Button) findViewById(R.id.d1);
        btn1.setOnTouchListener(this);

        edLCD = (EditText) findViewById(R.id.edLCD);
    }

    //...

    public boolean onTouch(View v, MotionEvent event)
    {
        if(event.getAction() == MotionEvent.ACTION_DOWN)
        {
            edLCD.setText(edLCD.getText().toString() + "1");
        }
        return true;
    }
}
试试看

试试看


显示您的代码。还有,为什么你想这样做是为了“触摸”而不是“点击”呢?@MisterSquonk触摸按钮会有更快的响应,而点击按钮直到你从屏幕上抬起手指才会有响应。此外,我应该向您显示什么代码?我只是想问一下如何在触摸按钮时实现声音效果。只需使用onClick,就不会有按钮对触摸和非onClick做出反应。不要破坏用户体验@DanielLockard实际上,
onTouch
onClick
之间没有区别,除了响应时间之外,它们都是相似的。@Eng-为OnTouchListener显示不工作的代码。在看到您的尝试之前,我们无法告诉您如何使其工作。请显示您的代码。还有,为什么你想这样做是为了“触摸”而不是“点击”呢?@MisterSquonk触摸按钮会有更快的响应,而点击按钮直到你从屏幕上抬起手指才会有响应。此外,我应该向您显示什么代码?我只是想问一下如何在触摸按钮时实现声音效果。只需使用onClick,就不会有按钮对触摸和非onClick做出反应。不要破坏用户体验@DanielLockard实际上,
onTouch
onClick
之间没有区别,除了响应时间之外,它们都是相似的。@Eng-为OnTouchListener显示不工作的代码。我们不能告诉你如何让它工作,直到我们看到你已经尝试。很高兴能帮助。我们最终到达了那里很乐意帮忙。我们最终到达了那里