Created
March 17, 2018 17:32
-
-
Save eltonjhony/26fdbe1d9312472bdd8202977cb21514 to your computer and use it in GitHub Desktop.
Fragment that uses an AsyncTask to bring result by using a listener
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.content.Context; | |
import android.content.Intent; | |
import android.net.ConnectivityManager; | |
import android.net.NetworkInfo; | |
import android.os.Bundle; | |
import android.preference.PreferenceManager; | |
import android.support.v4.app.Fragment; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.AdapterView; | |
import android.widget.GridView; | |
import android.widget.Toast; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class MainActivityFrag extends Fragment implements FetchMovieListTask.OnLoadMoviesListener { | |
private MovieAdapter adapter = null; | |
public MainActivityFrag() { | |
} | |
@Override | |
public void onStart() { | |
super.onStart(); | |
updateMovieList(); | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
Bundle savedInstanceState) { | |
View view = inflater.inflate(R.layout.fragment_main_activity, container, false); | |
adapter = new MovieAdapter(getActivity(), new ArrayList<Info>()); | |
GridView gridView = view.findViewById(R.id.grid_view); | |
gridView.setAdapter(adapter); | |
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { | |
@Override | |
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { | |
Info item = adapter.getItem(position); | |
Intent intent = new Intent(getContext(), DetailActivity.class); | |
intent.putExtra(Info.class.getName(), item); | |
startActivity(intent); | |
} | |
}); | |
return view; | |
} | |
private void updateMovieList() { | |
String sortKey = getString(R.string.pref_sort_key); | |
String sortVal = getString(R.string.pref_sort_label); | |
String sort = PreferenceManager.getDefaultSharedPreferences(getContext()).getString(sortKey, sortVal); | |
if (isOnline()) { | |
FetchMovieListTask fetchMovieListTask = new FetchMovieListTask(this); | |
fetchMovieListTask.execute(sort); | |
} else { | |
Toast.makeText(getContext(), "There is no internet connection.", Toast.LENGTH_LONG).show(); | |
} | |
} | |
@Override | |
public void onSuccess(List<Info> result) { | |
if (result != null) { | |
adapter.clear(); | |
adapter.addAll(result); | |
} | |
} | |
private boolean isOnline() { | |
ConnectivityManager cm = | |
(ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE); | |
NetworkInfo netInfo = cm.getActiveNetworkInfo(); | |
return netInfo != null && netInfo.isConnectedOrConnecting(); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment