(新手到Java,旧时代的C#家伙.)
我注意到@OverrideAndroid示例代码中有很多用处.我认为所有Java方法都默认为"虚拟"?
然后做@Override什么?
例:
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题.我使用了prepareAsync方法MediaPlayer,但我声明的监听器永远不会被触发.我尝试.mp3从互联网(电台)流式传输实时信息.我为侦听器使用内联方法,但我也尝试实现接口而没有任何成功.这是我的代码的一部分:
在会员部分:
String url = "http://<my_url>.mp3";
MediaPlayer mediaPlayer = new MediaPlayer();
Run Code Online (Sandbox Code Playgroud)
在活动中onCreate():
ToggleButton playButton = (ToggleButton) findViewById(R.id.playToggleButton);
playButton.setOnClickListener(this);
playButton.clearFocus();
playButton.setClickable(false);
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
ToggleButton playButton = (ToggleButton) findViewById(R.id.playToggleButton);
playButton.setClickable(true);
mp.start();
}
});
preparePlayer();
Run Code Online (Sandbox Code Playgroud)
然后,这是preparePlayer()方法:
private void preparePlayer() {
if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
}
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
Toast.makeText(
MyStreamActivity.this,
getResources().getString(R.string.erreurIllegalArgument),
Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IllegalStateException e) …Run Code Online (Sandbox Code Playgroud)