0

私は音楽プレーヤーをほぼ使い果たしました。サーバー上にある song_name とその URL を含むファイルを読み取ることができますが、これらの情報を配列 song_name[] と song_url[] にそれぞれ保存する方法がわかりません。これは私の完全なコードで、リンクはコード内にあります。

package com.hiphop.streamingmediaplayer;i
import java.io.IOException;  
import java.net.URL;
import java.util.Scanner;

import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Jsonmedia extends Activity {
    private MediaPlayer mp;
    Button play;
    String song_url[], song_name[];

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jsonview);

    try {
        URL url = new URL("http://reallifethug.webs.com/temp_list.txt");
        Scanner s = new Scanner(url.openStream());
        while (s.hasNextLine()) {
            song_url = s.nextLine();
        }
        s.close();
    } catch (IOException ex) {
        // there was some connection problem, or the file did not exist on
        // the server,
        // or your URL was not in the right format.
        // think about what to do now, and put it here.
        ex.printStackTrace(); // for now, simply output it.
    }

    mp = new MediaPlayer();
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC);

    play = (Button) findViewById(R.id.play);

    play.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            try {
                mp.setDataSource(song_url);
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SecurityException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                mp.prepare();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            mp.start();
        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.jsonmedia, menu);
    return true;

}

}

4

2 に答える 2

0

リストを使用して、新しい要素をプッシュするだけです

private String List<String> song_url;
private String List<String> song_name;


//inside the onCreate method

song_url = new ArrayList<>();
song_name = new ArrayList<>();

while (s.hasNextLine()) {
   //instead of this
   //song_url = s.nextLine();
   String newUrl = s.nextLine();

   song_url.add(newUrl);
}

ただし、新しい行ごとに曲名がリストされている場合にのみ、新しい曲の URL が正しく保存されることに注意してください。

于 2013-05-15T11:42:42.307 に答える