0

ユーザーが画面に触れたときに効果音を再生するという奇妙な問題が発生しています。これでどこに行くべきか本当にわかりません。sing という名前のクラスと、効果音を再生する sound() というメソッドがあります。onCreate() メソッドでは、コードは正常に機能しますが、onTouch() メソッドでは機能しません。私が使用しているコードは次のとおりです。

TextView textview;
Sing sing;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    textview = new TextView(this);
    textview.setText("Test");
    setContentView(textview);
    sing = new Sing();
    sing.create();
    sing.sound("sound.ogg");//just to test, works fine
}

public boolean onTouch(View v, MotionEvent event){
    if (event.getAction() == MotionEvent.ACTION_UP){
        sing.sound("sound.ogg"); //doesnt work
    } 
    return true;
}

onCreate() での sing.sound() への最初の呼び出しは正常に機能しますが、onTouch() での後続の呼び出しは何もしていないようです。このテスト クラスは、アクティビティを拡張し、onTouch を実装します。onTouch をインポートしましたが、それ以降は、エラーの原因がわかりません。私は歌うクラスを投稿しますが、それは一種のコードです。誰でもできる助けは非常に高く評価されます。私は今日、恥ずかしいほど長い間これに苦労してきました.私はまだアンドロイドが得意ではありません. 前もって感謝します。

--edit アクティビティ全体は次のとおりです。

package com.test.ch4;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.View;
import android.view.MotionEvent;
import android.view.View.OnTouchListener;

public class SoundPoolTest extends Activity implements OnTouchListener{
TextView textview;
Sing sing;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    textview = new TextView(this);
    textview.setTextSize(40);
    textview.setText("Test");
    setContentView(textview);
}

public boolean onTouch(View v, MotionEvent event){
    if (event.getAction() == MotionEvent.ACTION_UP){
        sing = new Sing();
        sing.create();
        sing.sound("sound.ogg");
    } 
    return true;
    }
}
4

1 に答える 1