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