Java 通过单击另一活动中arraylist中的项目,将项目添加到数组列表中

Java 通过单击另一活动中arraylist中的项目,将项目添加到数组列表中,java,android,arraylist,playlist,onitemclicklistener,Java,Android,Arraylist,Playlist,Onitemclicklistener,我知道我可能正在做一笔更大的交易,但我的问题是: 我基本上希望能够从歌曲列表中制作一个播放列表。单击每个歌曲/项目时,会将其添加到另一个活动中的另一个arraylist中 请让它如此令人沮丧: 这是我的密码 public class SDLTlist extends ListActivity { // Songs list public ArrayList<HashMap<String, String>> songsList = new ArrayLi

我知道我可能正在做一笔更大的交易,但我的问题是:

我基本上希望能够从歌曲列表中制作一个播放列表。单击每个歌曲/项目时,会将其添加到另一个活动中的另一个arraylist中

请让它如此令人沮丧:

这是我的密码

public class SDLTlist extends ListActivity {

     // Songs list
    public ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ltsdlist);

        ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();

        ImportSD plm = new ImportSD();
        // get all songs from sdcard
        this.songsList = plm.getPlayList();

        // looping through playlist
        for (int i = 0; i < songsList.size(); i++) {
            // creating new HashMap
            HashMap<String, String> song = songsList.get(i);

            // adding HashList to ArrayList
            songsListData.add(song);
        }

        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, songsListData,
                R.layout.playlist_item, new String[] { "songTitle" }, new int[] {
                        R.id.songTitle });

        setListAdapter(adapter);
        };

     });

   }
}
公共类SDLTlist扩展了ListActivity{
//歌曲列表
public ArrayList songsList=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ltsdlist);
ArrayList songsListData=新的ArrayList();
ImportSD plm=新的ImportSD();
//从SD卡获取所有歌曲
this.songsList=plm.getPlayList();
//循环播放列表
对于(int i=0;i
上面的类使用文件扩展名为.MP3的
MEDIA\u PATH
导入歌曲(在另一个名为importSD的类中调用),并在数组中列出它们,当我从该列表中选择一个项目时,我希望它被添加到另一个不同活动的列表中。我应该使用
onItemClickListners
函数吗?如果是这样,我将如何做?

您可以:

A.将要添加到的ArrayList保留在活动之外(即,在覆盖应用程序的类中),然后在第二个活动中添加它

B.将选定的数据数组传递回活动,并通过拉出传递回的列表在OnActivityResult中处理它

例如,如果您有一个字符串[],您可以通过以下方式将其从传递回的意图中拉出:

data.getStringArrayExtra("my_string_array_name")

您始终可以创建可在所有活动中共享的全局应用程序类:

package com.example.app;

import android.app.Application;
import java.util.ArrayList;

public class GlobalVars extends Application {

    public ArrayList<String> aList;

    public GlobalVars() {
        aList = new ArrayList<String>();
    }

}

确保将此应用程序类正确添加到您的AndroidManifest.xml中。

问题出在哪里。。。?发布你的进度。
gVars = (GlobalVars) getApplication();
gVars.aList.add("Adding a String");