vendredi 8 mai 2015

Fragment is Not saving any data, Starting as fresh one when loaded every time

My intention in writing that question is I've a fragment and I've loaded a listview with some data and I went to another fragment, now when i come back to that fragment listview is not loaded, means again its fresh start.

Another Problem: I've a fragment, I've instantiated it and there is a View(say Linear Layout) in it, I've added two children to it. I've loaded another fragment and came back. again same problem. fragment started again with no children .... Please Help

Code for second problem named Another Problem:

Fragment.class

package view;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

import adapters.PlayListLoadingAdapterForSpeakers;
import amiTechnologies.products.multizoneplayer.R;
import interfaces.MessageFromMainActivityToFrgmentMultizone;
import interfaces.MessageFromSpeakerDetectorToFragmentMultizoning;
import model.Globals;
import model.PlayListModelSaved;
import utilities.SpeakerInfo;
import utilities.Track;

/**
 * Created by admin on 5/6/2015.
 */
public class Fragment extends Fragment {

    ImageView loadPlayLists;
    PlayListModelSaved playListModelSaved = PlayListModelSaved.getInstance();
    PlayListLoadingAdapterForSpeakers adapterForSpeakers;
    ArrayList<Track> playlistContents = new ArrayList<Track>();
    ListView tracksListViewForSpeakers;
    LinearLayout parentOfDockedPlayers;
    ArrayList<String> myZoneNames;
    ArrayList<String> myIpAddress;


    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_multi_zoning, container, false);
        loadPlayLists = (ImageView) view.findViewById(R.id.loadPlayList);
        parentOfDockedPlayers = (LinearLayout) view.findViewById(R.id.parentOfMediaPlayer);


        getZonesAndIps();
        addZones();

        tracksListViewForSpeakers = (ListView) view.findViewById(R.id.loadedPlayList);
        adapterForSpeakers = new PlayListLoadingAdapterForSpeakers(getActivity(), R.layout.row_playlistcontent, playlistContents);
        tracksListViewForSpeakers.setAdapter(adapterForSpeakers);

        loadPlayLists.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String[] playlists = new String[playListModelSaved.getPlayLists().size()];
                playlists = playListModelSaved.getPlayLists().toArray(playlists);
                if (playlists.length > 0) {
                    AlertDialog.Builder selectPlayList = new AlertDialog.Builder(getActivity());
                    selectPlayList.setTitle("Select from PlayLists");
                    selectPlayList.setItems(playlists, new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int playlist) {
                            tracksListViewForSpeakers.setVisibility(View.VISIBLE);
                            loadPlayLists.setVisibility(View.GONE);
                            loadPlayistContents(playlist);

//                            saveToPlaylist(playlist, audioAdapter.albumsStatesList);
                        }
                    });

                    selectPlayList.create().show();

                } else {
                    Toast.makeText(getActivity(), "There are no PlayLists...", Toast.LENGTH_SHORT).show();
//                    AddPlayList();

                }
            }
        });

        return view;
    }


    public void getZonesAndIps(){
            myZoneNames = new ArrayList<String>();
            for(String value:Globals.zoneMappingTable.values()){
            myZoneNames.add(value);
        }
            myIpAddress= new ArrayList<String>();
            for(String key:Globals.zoneMappingTable.keySet()){
             myIpAddress.add(key);
        }
}


    private void addZones() {
        int count = parentOfDockedPlayers.getChildCount();
        int k;
        if(count>=0){
           k= count;
        }else{
            k=0;
        }
        int i = Globals.zoneMappingTable.size();
        if(i<=0){
            Toast.makeText(getActivity(),"There are no WIFI Speakers detected",Toast.LENGTH_SHORT).show();
        }
        else{
            for(int j=0;j<i;j++){
                SingleZonePlayerView singleZonePlayerView = new SingleZonePlayerView(getActivity());
                singleZonePlayerView.setSpeakerName(myZoneNames.get(j));
                singleZonePlayerView.setSpeakerIp(myIpAddress.get(j));
//                singleZonePlayerView.setMessageFromSingleZonePlayerViewToMainActivity(mainActivity);
                singleZonePlayerView.setPosition(k);

                parentOfDockedPlayers.addView(singleZonePlayerView);
            }
        }
    }

//    @Override
    public void allAvailableSpeakersDetected(ArrayList<SpeakerInfo> availableSpeakers) {
        int count = parentOfDockedPlayers.getChildCount();
        int j;
        if(count>=0){
            j= count;
        }else{
            j=0;
        }

        int size = availableSpeakers.size();
        if (size <= 0) {
            getToast("There are no WIFI Speakers detected");
        } else {

            for (int i = 0; i < size; i++,j++) {
                SingleZonePlayerView singleZonePlayerView = new SingleZonePlayerView(getActivity());
                singleZonePlayerView.setSpeakerName(availableSpeakers.get(i).getSpeakerName());
                singleZonePlayerView.setSpeakerIp(availableSpeakers.get(i).getSpeakerIp());
                singleZonePlayerView.setPosition(j);

                parentOfDockedPlayers.addView(singleZonePlayerView);
            }
        }
    }


        private void loadPlayistContents ( int playlist){
            ArrayList<String> playListTitles = playListModelSaved.getPlayLists();
            String fileName = playListTitles.get(playlist);

            if (playlistContents.size() > 0)
                playlistContents.clear();

            playlistContents.addAll(playListModelSaved.getSavedPlayListsContent(fileName));
            if (playlistContents.size() == 0) {
                Toast.makeText(getActivity(), "Empty PlayList", Toast.LENGTH_SHORT).show();
                tracksListViewForSpeakers.setVisibility(View.GONE);
                loadPlayLists.setVisibility(View.VISIBLE);
            }

            adapterForSpeakers.notifyDataSetChanged();

        }

    public void getToast(String a){
        Toast.makeText(getActivity(),a,Toast.LENGTH_SHORT).show();
    }

//    @Override
    public void sendData(ArrayList<SpeakerInfo> availableSpeakers,Context context) {
       /* int count=-1;
        if(parentOfDockedPlayers!=null){
        count = parentOfDockedPlayers.getChildCount();
        }*/

        int j=0;
        /*if(count>=0){
            j= count;
        }else{
            j=0;
        }*/
        int size = availableSpeakers.size();
        if (size <= 0) {
            getToast("There are no WIFI Speakers detected");
        } else {

            for (int i = 0; i < size; i++,j++) {
                SingleZonePlayerView singleZonePlayerView = new SingleZonePlayerView(context);
                singleZonePlayerView.setSpeakerName(availableSpeakers.get(i).getSpeakerName());
                singleZonePlayerView.setSpeakerIp(availableSpeakers.get(i).getSpeakerIp());
                singleZonePlayerView.setPosition(j);

                parentOfDockedPlayers.addView(singleZonePlayerView);
            }
        }
    }
}

Aucun commentaire:

Enregistrer un commentaire