将String转换为ArrayList

时间:2014-11-16 14:29:25

标签: android android-activity android-fragments

在此先感谢您的帮助,我的代码在文本文件中显示并在ListView中显示,我在文本字段中的一行中有Name和youtube。

但我正在尝试做的是在文本文件中获取youtube String并将其作为webview传递给我的新Activity类来播放视频 只是想知道如何做到这一点,我如何将这个String传递到我的Model类中的Setters中以获得它的实例,我是否需要将String转换为ArrayListString?

public class menuFragment extends ListFragment {
    ArrayList<model> songList = new ArrayList<model>();
    public String[] listSongs = new String[]{};
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.list_fragment, container, false);
        loadSongs();
        return view;
    }
    public void loadSongs() {
        try {
            Resources ResFiles = getResources();
            InputStream ReadDbFile = ResFiles.openRawResource(R.raw.songs);
            byte[] Bytes = new byte[ReadDbFile.available()];
            ReadDbFile.read(Bytes);
            String DbLines = new String(Bytes);
            listSongs = DbLines.split(",");
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_list_item_1, listSongs);
            setListAdapter(adapter);
        } catch (Exception e) {
        }
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        Intent i = new Intent(getActivity(), playVid.class);
        model selectedSong = MainController.getInstance().getSongs().get(position);
        i.putExtra("selectedSong", selectedSong);
        startActivity(i);
    }


public class model implements Serializable {
    private String name;
    private String url;

    public model(String name, String url) {
        this.name=name;
        this.url = url;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl(){
        return url;
    }
    public void setUrl(String url){
        this.url = url;
    }

public class MainController
{
    private static MainController instance;
    private ArrayList<model> songList;
    private MainController()
    {
        this.songList = new ArrayList<model>();
    }
    public static MainController getInstance()
    {
        if(instance == null)
        {
            instance = new MainController();
        }
        return instance;
    }
    public void addFlight(String name, String singer, String url)
    {
        model f = new model(name,singer,url);
        this.songList.add(f);
    }
    public ArrayList<model> getSongs()
    {
        return this.songList;
    }

1 个答案:

答案 0 :(得分:0)

建议类名称应以大写字母开头 - 模型。

你只有三个变量可以传递给另一个活动,所以你可以有三个putExtra,你的意图不需要ArrayList,先生。

    Model selectedSong =  MainController.getInstance().getSongs().get(position); 
    i.putExtra("name", selectedSong.getName());
    i.putExtra("singer", selectedSong.getSinger());
    i.putExtra("url", selectedSong.getUrl());
    startActivity(i);

在另一个Activity的onCreate中,我们可以像这样访问这三个值,

    Intent mIntent = getIntent();
    String name = mIntent.getStringExtra("name");
    String singer = mIntent.getStringExtra("singer");
    String url = mIntent.getStringExtra("url");