Java 如何从url获取文本并将其放入textView中?
我是android开发的新手,我真的不知道该怎么做。所以,我正在构建一个android应用程序,通过url在线播放音乐。有一个显示当前歌曲的url。这是你的电话号码 我在我的activity_主文件中创建了一个textView,将当前的歌曲文本放在其中,但我不知道怎么做。我知道我需要创建变量url,然后我需要解析该url并将其放在文本视图中。还是不 以下是我的MainActivity.java:Java 如何从url获取文本并将其放入textView中?,java,android,string,url,Java,Android,String,Url,我是android开发的新手,我真的不知道该怎么做。所以,我正在构建一个android应用程序,通过url在线播放音乐。有一个显示当前歌曲的url。这是你的电话号码 我在我的activity_主文件中创建了一个textView,将当前的歌曲文本放在其中,但我不知道怎么做。我知道我需要创建变量url,然后我需要解析该url并将其放在文本视图中。还是不 以下是我的MainActivity.java: import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private Button btn;
private TextView currentSong;
private boolean playPause;
private MediaPlayer mediaPlayer;
private boolean initialStage = true;
private ProgressBar pgsBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.audioStreamBtn);
currentSong = (TextView) findViewById(R.id.currentSong);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
pgsBar = findViewById(R.id.progressBar);
pgsBar.setVisibility(View.GONE);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!playPause) {
btn.setText("Stop");
if (initialStage) {
new Player().execute("stream url ...");
} else {
if (!mediaPlayer.isPlaying())
mediaPlayer.start();
}
playPause = true;
} else {
btn.setText("Play");
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
playPause = false;
}
}
});
}
class Player extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... strings) {
Boolean prepared = false;
try {
mediaPlayer.setDataSource(strings[0]);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
initialStage = true;
playPause = false;
btn.setText("Play");
mediaPlayer.stop();
mediaPlayer.reset();
}
});
mediaPlayer.prepare();
prepared = true;
} catch (Exception e) {
prepared = false;
}
return prepared;
}
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
if (pgsBar.getVisibility() == View.VISIBLE) {
pgsBar.setVisibility(View.GONE);
btn.setEnabled(true);
}
mediaPlayer.start();
initialStage = true;
}
@Override
protected void onPreExecute() {
mediaPlayer.reset();
super.onPreExecute();
pgsBar.setVisibility(View.VISIBLE);
btn.setEnabled(false);
}
}
}
导入androidx.appcompat.app.appcompat活动;
导入android.media.AudioManager;
导入android.media.MediaPlayer;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ProgressBar;
导入android.widget.Button;
导入android.widget.TextView;
公共类MainActivity扩展了AppCompatActivity{
专用按钮btn;
私有文本查看当前歌曲;
私有布尔暂停;
私人媒体播放器;
private boolean initialStage=true;
私人ProgressBar pgsBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(按钮)findViewById(R.id.audioStreamBtn);
currentSong=(TextView)findViewById(R.id.currentSong);
mediaPlayer=新的mediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
pgsBar=findViewById(R.id.progressBar);
pgsBar.setVisibility(View.GONE);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(!播放暂停){
btn.setText(“停止”);
如果(初始阶段){
新建播放器()。执行(“流url…”);
}否则{
如果(!mediaPlayer.isPlaying())
mediaPlayer.start();
}
playPause=true;
}否则{
btn.setText(“播放”);
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
}
playPause=false;
}
}
});
}
类播放器扩展异步任务{
@凌驾
受保护的布尔doInBackground(字符串…字符串){
布尔值=假;
试一试{
setDataSource(字符串[0]);
mediaPlayer.setOnCompletionListener(新的mediaPlayer.OnCompletionListener(){
@凌驾
完成时的公共作废(MediaPlayer MediaPlayer){
初始阶段=真;
playPause=false;
btn.setText(“播放”);
mediaPlayer.stop();
mediaPlayer.reset();
}
});
mediaPlayer.prepare();
准备好=正确;
}捕获(例外e){
准备好的=假;
}
准备好报税表;
}
@凌驾
受保护的void onPostExecute(布尔aBoolean){
super.onPostExecute(aBoolean);
if(pgsBar.getVisibility()==View.VISIBLE){
pgsBar.setVisibility(View.GONE);
btn.setEnabled(真);
}
mediaPlayer.start();
初始阶段=真;
}
@凌驾
受保护的void onPreExecute(){
mediaPlayer.reset();
super.onPreExecute();
pgsBar.setVisibility(View.VISIBLE);
btn.setEnabled(false);
}
}
}
如何提取此文本并将其放入我的文本视图“currentSong”?您可以使用库向URL发出网络请求,它将以字符串形式返回响应。根据您的喜好修改响应,并将该值用于文本视图的setText()。使用改装或截取来发出URL请求
可能重复的我相信您正在开发一个音乐应用程序来在线播放音乐。请看一下这个项目可能会对您有很大帮助