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

时间:2014-03-20 20:54:03

标签: java android arraylist playlist onitemclicklistener

我知道我可能会做出更大的交易,但这是我的问题:

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

请帮助它如此令人沮丧:

这是我的代码..

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);
        };

     });

   }
}

上面的类使用带有文件扩展名.MP3的MEDIA_PATH导入歌曲(在另一个名为importSD的类中调用)并将它们列在一个数组中,因为我从该列表中选择了一个项目我想要添加它到另一个活动中的另一个列表。我应该使用onItemClickListners功能吗?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:0)

你可以:

一个。将您想要的添加到的ArrayList保留在Activities(即。在覆盖Application 的类中)之外,然后在第二个Activity中保留它。

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

IE。如果你有一个String [],你可以将它从传回的Intent中拉出来:

data.getStringArrayExtra("my_string_array_name")

答案 1 :(得分:0)

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

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>();
    }

}

然后在每个Activity中你可以得到这样的全局类:

gVars = (GlobalVars) getApplication();
gVars.aList.add("Adding a String");

确保将此Application类正确添加到AndroidManifest.xml。