Добавление элементов в список массивов путем щелчка по элементу из массива в другом действии

Я знаю, что, вероятно, делаю из этого большую сделку, но вот моя проблема:

Я в основном хочу иметь возможность составить плейлист из списка песен. При щелчке по каждой песне / элементу она добавляется в другой арайлист в другом действии.

Помогите, пожалуйста, так обидно:

вот мой код ..

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

     });

   }
}

Вышеупомянутый класс импортирует песни с использованием MEDIA_PATH с расширениями файлов .MP3 (который вызывается в другом классе, называемом importSD), и перечисляет их в массиве, когда я выбираю элемент из этого списка, я хочу, чтобы он был добавлен в другой список в другом действии . Стоит ли использовать функцию onItemClickListners? Если да, то как мне это сделать?


person james    schedule 20.03.2014    source источник
comment
В чем проблема...? Опубликуйте свой прогресс.   -  person ylun.ca    schedule 21.03.2014


Ответы (2)


Вы также можете:

A. Сохраните список ArrayList, который вы хотите добавить, за пределами Activity (т. Е. В классе, который переопределяет Application), а затем добавьте его, находясь во втором Activity.

or

B. Передайте выбранный массив данных обратно в Activity и обработайте его в OnActivityResult, вытащив переданный вами список.

IE. Если у вас есть String [], вы можете извлечь его из переданного Intent с помощью:

data.getStringArrayExtra("my_string_array_name")
person Cruceo    schedule 20.03.2014

Вы всегда можете создать глобальный класс приложения, который можно использовать во всех ваших действиях:

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

}

Затем в каждом действии вы можете получить глобальный класс следующим образом:

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

Убедитесь, что вы правильно добавили этот класс Application в свой AndroidManifest.xml.

person Nic Raboy    schedule 20.03.2014