2013-04-02 81 views
1

我正在開發一個項目,我需要創建一些Button,點擊後會播放一​​些音調。這是我使用在AVD播放聲音

package com.entrainment.www; 

import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends Activity { 

Button mButtonOne; 
Button mButtonTwo; 
MediaPlayer mp; 
MediaPlayer mp1; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mp=MediaPlayer.create(this, R.raw.tone_1); 
    mp1=MediaPlayer.create(this, R.raw.tone_2); 

    mButtonOne = (Button)findViewById(R.id.button1); 
    mButtonTwo = (Button)findViewById(R.id.button2); 
    mButtonOne.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v){ 
      mp.start(); 
     } 
    }); 

    mButtonTwo.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v){ 
      mp1.start(); 
     } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

我已經得到了AVD運行的代碼,這一切都很好,但是當我按一下按鈕,沒有任何反應。

+0

你爲什麼設置內容兩次..?的setContentView(R.layout.activity_main); – Pragnani

+0

你有沒有試過我的答案..是你的問題修復..? – Pragnani

回答

0

因爲您正在設置兩次內容。

setContentView(R.layout.activity_main); 

調用將膨脹您的佈局。

無論何時它第二次新副本將作出,所以

mButtonOnemButtonTwo是第一inflatted佈局的情況下,但你的curret視圖第二inflatted佈局。 簡單地說你在屏幕上看到的按鈕是不同的,因爲它們屬於第二個佈局。所以你點擊沒有任何你設定的動作的按鈕。

所以刪除setContentView(R.layout.activity_main);第二次。

+0

我只能看一次。你是什麼意思,我有兩次? – user2235756

+0

沒關係。瞭解。我正在嘗試它:) – user2235756

+0

DUUUUUUUDEEEE /。非常感謝。你是救生員。它的工作:)) – user2235756