Java 如何从url获取文本并将其放入textView中?

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;

我是android开发的新手,我真的不知道该怎么做。所以,我正在构建一个android应用程序,通过url在线播放音乐。有一个显示当前歌曲的url。这是你的电话号码

我在我的activity_主文件中创建了一个textView,将当前的歌曲文本放在其中,但我不知道怎么做。我知道我需要创建变量url,然后我需要解析该url并将其放在文本视图中。还是不

以下是我的MainActivity.java:

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请求


可能重复的

我相信您正在开发一个音乐应用程序来在线播放音乐。请看一下这个项目可能会对您有很大帮助