Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.skmobile.catalogmovie;
- import android.app.LoaderManager;
- import android.content.Loader;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ListView;
- import java.util.ArrayList;
- public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<ArrayList<MovieItems>>{
- ListView listView;
- MovieThread thread;
- EditText editTitle;
- Button btnCari;
- static final String EXTRAS_TITLE = "EXTRAS_TITLE";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- this.setTitle(" Catalogue Movie");
- getSupportActionBar().setDisplayShowHomeEnabled(true);
- getSupportActionBar().setLogo(R.drawable.ic_movie_black_24dp);
- getSupportActionBar().setDisplayUseLogoEnabled(true);
- thread = new MovieThread(this);
- thread.notifyDataSetChanged();
- listView = (ListView)findViewById(R.id.list_view);
- listView.setAdapter(thread);
- editTitle = (EditText)findViewById(R.id.edt_search);
- btnCari = (Button)findViewById(R.id.btn_search);
- btnCari.setOnClickListener(myListener);
- String title = editTitle.getText().toString();
- Bundle bundle = new Bundle();
- bundle.putString(EXTRAS_TITLE, title);
- getLoaderManager().initLoader(0, bundle, this);
- }
- @Override
- public Loader<ArrayList<MovieItems>> onCreateLoader(int id, Bundle args) {
- String kumpulanTitle = "";
- if (args != null ){
- kumpulanTitle = args.getString(EXTRAS_TITLE);
- }
- return new MyTaskMovie(this , kumpulanTitle);
- }
- @Override
- public void onLoadFinished(Loader<ArrayList<MovieItems>> loader, ArrayList<MovieItems> data) {
- thread.setData(data);
- }
- @Override
- public void onLoaderReset(Loader<ArrayList<MovieItems>> loader) {
- thread.setData(null);
- }
- View.OnClickListener myListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String title = editTitle.getText().toString();
- if (TextUtils.isEmpty(title))return;
- Bundle bundle = new Bundle();
- bundle.putString(EXTRAS_TITLE, title);
- getLoaderManager().restartLoader(0, bundle, MainActivity.this);
- }
- };
- }
- ================================================================================================
- package com.skmobile.catalogmovie;
- import org.json.JSONException;
- import org.json.JSONObject;
- /**
- * Created by ADMIN on 19/11/2017.
- */
- public class MovieItems {
- private String Title;
- private String image;
- private String discripsi;
- private String date;
- private String AltTitle;
- public MovieItems(JSONObject object) {
- try {
- String title = object.getJSONArray("change_keys").getJSONObject(0).getString("title");
- String AltTitle = object.getJSONArray("change_keys").getJSONObject(0).getString("alternative_title");
- String image = object.getJSONObject("images").getString("base_url");
- String description = object.getJSONArray("change_keys").getJSONObject(0).getString("biography");
- String date = object.getJSONArray("change_keys").getJSONObject(0).getString("air_date");
- this.Title = title;
- this.AltTitle = AltTitle;
- this.discripsi = description;
- this.date = date;
- this.image = image;
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- public String getTitle() {
- return Title;
- }
- public void setTitle(String title) {
- Title = title;
- }
- public String getImage() {
- return image;
- }
- public void setImage(String image) {
- this.image = image;
- }
- public String getDiscripsi() {
- return discripsi;
- }
- public void setDiscripsi(String discripsi) {
- this.discripsi = discripsi;
- }
- public String getDate() {
- return date;
- }
- public void setDate(String date) {
- this.date = date;
- }
- public String getAltTitle() {
- return AltTitle;
- }
- public void setAltTitle(String altTitle) {
- AltTitle = altTitle;
- }
- }
- ==================================================
- package com.skmobile.catalogmovie;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.RelativeLayout;
- import android.widget.TextView;
- import com.bumptech.glide.Glide;
- import java.util.ArrayList;
- import de.hdodenhof.circleimageview.CircleImageView;
- /**
- * Created by ADMIN on 19/11/2017.
- */
- public class MovieThread extends BaseAdapter {
- private ArrayList<MovieItems> mDataMovie = new ArrayList<>();
- private LayoutInflater mInflater;
- private Context context;
- public MovieThread (Context context){
- this.context = context;
- mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- }
- public void setData(ArrayList<MovieItems> items) {
- mDataMovie = items;
- notifyDataSetChanged();
- }
- public void addItem(final MovieItems item){
- mDataMovie.add(item);
- notifyDataSetChanged();
- }
- public void clearData(){
- mDataMovie.clear();
- }
- @Override
- public int getItemViewType(int position) {
- return 0;
- }
- @Override
- public int getViewTypeCount() {
- return 1;
- }
- @Override
- public int getCount() {
- return mDataMovie.size();
- }
- @Override
- public MovieItems getItem(int position) {
- return mDataMovie.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder = null;
- if (convertView == null) {
- holder = new ViewHolder();
- convertView = mInflater.inflate(R.layout.movie_list, null);
- holder.textViewTitle = (TextView)convertView.findViewById(R.id.tv_item_title);
- holder.textViewDescription = (TextView)convertView.findViewById(R.id.tv_item_discripsi);
- holder.textViewDate = (TextView)convertView.findViewById(R.id.tv_item_date);
- holder.ViewImage = (CircleImageView) convertView.findViewById(R.id.img_item_image);
- Glide.with(context).load("http://image.tmdb.org/t/p/w92/" + mDataMovie.get(position).getImage()).into(holder.ViewImage);
- convertView.setTag(holder);
- }else {
- holder = (ViewHolder)convertView.getTag();
- }
- holder.textViewTitle.setText(mDataMovie.get(position).getTitle());
- holder.textViewDescription.setText(mDataMovie.get(position).getDiscripsi());
- holder.textViewDate.setText(mDataMovie.get(position).getDate());
- holder.ViewImage.setImageResource(R.drawable.ic_not_interested_black_48dp);
- return convertView;
- }
- private static class ViewHolder{
- TextView textViewTitle;
- CircleImageView ViewImage;
- TextView textViewDescription;
- TextView textViewDate;
- RelativeLayout relativeLayout;
- }
- }
- =====================================================
- package com.skmobile.catalogmovie;
- import android.content.AsyncTaskLoader;
- import android.content.Context;
- import android.util.Log;
- import android.os.Build;
- import com.loopj.android.http.AsyncHttpResponseHandler;
- import com.loopj.android.http.SyncHttpClient;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import cz.msebera.android.httpclient.Header;
- /**
- * Created by ADMIN on 19/11/2017.
- */
- public class MyTaskMovie extends AsyncTaskLoader<ArrayList<MovieItems>> {
- private ArrayList<MovieItems> mMovieData;
- private boolean mResult;
- private String mKumpulanMovie;
- public MyTaskMovie(final Context context, String KumpulanMovie){
- super(context);
- onContentChanged();
- this.mKumpulanMovie = KumpulanMovie;
- }
- @Override
- protected void onStartLoading(){
- if (takeContentChanged())
- forceLoad();
- else if (mResult)
- deliverResult(mMovieData);
- }
- @Override
- public void deliverResult(final ArrayList<MovieItems> data){
- mMovieData = data;
- mResult = true;
- super.deliverResult(data);
- }
- @Override
- protected void onReset(){
- super.onReset();
- onStopLoading();
- if(mResult){
- onReleaseResources(mMovieData);
- mMovieData = null;
- mResult = false;
- }
- }
- private static final String API_KEY = "e12d991c84852d5502f6066cfb2689bc";
- @Override
- public ArrayList<MovieItems> loadInBackground() {
- SyncHttpClient client = new SyncHttpClient();
- final ArrayList<MovieItems> movieItemses = new ArrayList<>();
- String url = "https://api.themoviedb.org/3/search/movie?api_key="+API_KEY+"&language=en-US&query="+mKumpulanMovie;
- client.get(url, new AsyncHttpResponseHandler() {
- @Override
- public void onStart(){
- super.onStart();
- setUseSynchronousMode(true);
- }
- @Override
- public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
- try {
- String result = new String(responseBody);
- JSONObject responeseObject = new JSONObject(result);
- JSONArray list = responeseObject.getJSONArray("list");
- for (int i = 0; i < list.length(); i++){
- JSONObject movie = list.getJSONObject(i);
- MovieItems movieItems = new MovieItems(movie);
- movieItemses.add(movieItems);
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- @Override
- public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
- }
- });
- return movieItemses;
- }
- protected void onReleaseResources(ArrayList<MovieItems> data){
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement