2012-02-20 27 views
0

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; 
    } 
} 
+1

コードを表示します。また、なぜあなたは「クリック」アクションではなく「タッチ」アクションでこれをやりたいのですか? – Squonk

+0

@MisterSquonkボタンをタッチすると応答が速くなりますが、クリックすると応答しません。その上、私はあなたにどのようなコードを提示すべきですか?私はボタンに触れることで効果音を有効にする方法を尋ねるだけです。 –

+0

ちょうどonClickを使用すると、onClickではなくonTouchに反応するボタンがあるとは思われません。 UXを壊さないでください! –

答えて

3

てみてください。.. 。

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

+1完璧です。ありがとうございました:) –

+0

喜んで助けてください。私たちは最後にそこに着いた。 :) – Squonk

関連する問題