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


    });
    }
  }
4

2 に答える 2

0

start.this実際のコンテキストに変更します。を使用するか、コンテキストを作成して渡すgetParent()前に保存できます。onClickListener

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

//inside the onClickListener
mp = MediaPlayer.create(context, R.raw.praise1);
于 2012-10-25T03:00:09.667 に答える
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;
        }   }


});
 }
 }
于 2012-10-25T03:19:11.847 に答える