Java 通过单击另一活动中arraylist中的项目,将项目添加到数组列表中
我知道我可能正在做一笔更大的交易,但我的问题是: 我基本上希望能够从歌曲列表中制作一个播放列表。单击每个歌曲/项目时,会将其添加到另一个活动中的另一个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
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");