2012-10-25 135 views
1

我正在使用碎片,但是這段代碼不會運行。有人可以幫我弄這個嗎。在代碼中的問題似乎是與此部分「(start.this」。我的代碼不會運行?

public class frag extends FragmentActivity { 
public MediaPlayer mp = null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button b = (Button) findViewById(R.id.button1); 
    b.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      if (mp == null) { 
      mp = MediaPlayer.create(start.this, R.raw.praise1); 
      mp.start(); 
      }else { 
       mp.stop(); 
       mp = null; 
      } } 


    }); 
    } 
    } 
+0

什麼是'start.this' – bobnoble

+0

您可以發佈logcat的錯誤 – ababzy

+0

開始?你的代碼是做什麼的? – Lucifer

回答

0

更改您的代碼以

public class frag extends FragmentActivity { 
public MediaPlayer mp = null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

Button b = (Button) findViewById(R.id.button1); 
b.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     if (mp == null) { 
     mp = MediaPlayer.create(getApplicationContext(), R.raw.praise1);//==> Here is the change 
     mp.start(); 
     }else { 
      mp.stop(); 
      mp = null; 
     } } 


}); 
} 
} 
+0

謝謝你先生這個作品! – YES

0

變化start.this爲實際背景。你可以使用getParent()或者你可以存儲上下文創建onClickListener之前,並通過它在:

setContentView(R.layout.activity_main); 
final Context context = this; 

//inside the onClickListener 
mp = MediaPlayer.create(context, R.raw.praise1); 
+0

謝謝我現在嘗試它 – YES