-1

助けてください。アクティビティクラスとサービスクラスがあります。アクティビティには多くのボタンが含まれているため、ユーザーがクリックするとボタンxmlに対応することが表示され、対応するサウンドを再生する必要があります。したがって、putExtraを介してサービスに引数を渡しますが、できませんサービス クラスで取得します。onStartCommand() で取得しますが、作成も再生もしません (なのでわかりません)。この問題を解決するにはどうすればよいですか? ありがとう。ここに私のコード。アクティビティ.java

              public void onClick(View arg0) {
    if(arg0.getId()==R.id.Button01){
         id=arg0.getId();
        service = new Intent(this, MyService.class);
        service.putExtra("ButtonA", id);
                startService(service);

        setContentView(R.layout.button_a);

    }

....Service.java

 public void onCreate() {}
 public int onStartCommand(Intent intent,int flags,int startId){
            Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
           onHandleCommand(intent);


            return START_STICKY;
            }

    private void onHandleCommand(Intent intent) {

       if(button.equals(intent.getStringExtra("ButtonA"))){
           player = MediaPlayer.create(this, R.raw.alma);
           player.setLooping(false); 
            } else if(button.equals(intent.getStringExtra("ButtonAE"))){
                player = MediaPlayer.create(this, R.raw.azhe);
                 player.setLooping(false); 
            }

    }
4

1 に答える 1

0

申し訳ありませんが、ポイントを逃しましたonHandleCommand。これは独自の方法であり、オーバーライドすることはできません。あなたの問題はここにあるようです:

  if(button.equals(intent.getStringExtra("ButtonA")))

ここでインテントの追加として渡すものは何ですか?
何を比較しようとしていますか?ボタンと文字列?

于 2013-01-13T15:09:37.627 に答える