package com.anarchy.classifyview.sample.demonstrate; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; import android.support.v7.app.AlertDialog; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.Toast; import com.anarchy.classify.ClassifyView; import com.anarchy.classifyview.R; import com.anarchy.classifyview.core.BaseFragment; import com.anarchy.classifyview.sample.demonstrate.logic.Book; import com.anarchy.classifyview.sample.demonstrate.logic.BookListAdapter; import com.anarchy.classifyview.sample.demonstrate.logic.BookListener; import com.anarchy.classifyview.sample.demonstrate.logic.NetManager; import com.anarchy.classifyview.sample.demonstrate.logic.SelectBookListAdapter; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; /** * <p/> * Date: 16/6/12 10:09 * Author: rsshinide38@163.com * <p/> */ public class DemonstrateFragment extends BaseFragment { private NetManager mNetManager = new NetManager(); private List<List<Book>> mBooks = new ArrayList<>(); private BookListAdapter mAdapter; private ClassifyView mClassifyView; private SelectBookListAdapter mSelectBookListAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.demonstrate_main, container, false); FloatingActionButton button = (FloatingActionButton) view.findViewById(R.id.add_button); mClassifyView = (ClassifyView) view.findViewById(R.id.classify_view); mAdapter = new BookListAdapter(mBooks); mClassifyView.setAdapter(mAdapter); mClassifyView.setDebugAble(true); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext()); View content = LayoutInflater.from(v.getContext()).inflate(R.layout.select_book, null); RecyclerView recyclerView = (RecyclerView) content.findViewById(R.id.select_list); final ProgressBar progressBar = (ProgressBar) content.findViewById(R.id.progress_bar); recyclerView.setLayoutManager(new GridLayoutManager(v.getContext(), 2)); if (mSelectBookListAdapter == null) mSelectBookListAdapter = new SelectBookListAdapter(); recyclerView.setAdapter(mSelectBookListAdapter); builder.setView(content); final AlertDialog dialog = builder.show(); mSelectBookListAdapter.setItemClickListener(new SelectBookListAdapter.ItemClickListener() { @Override public void onItemClick(View parent, int position, Book book) { List<Book> books = new ArrayList<>(); books.add(book); mBooks.add(books); mAdapter.notifyItemInsert(mBooks.size() - 1); dialog.dismiss(); } }); if (mSelectBookListAdapter.getBookList() != null) { progressBar.setVisibility(View.GONE); return; } progressBar.setVisibility(View.VISIBLE); mNetManager.getBookList(new BookListener() { @Override public void onSuccess(String result) { progressBar.setVisibility(View.INVISIBLE); List<Book> books = new ArrayList<>(); try { JSONObject jsonObject = new JSONObject(result); JSONArray jsonArray = jsonObject.optJSONArray("list"); if (jsonArray != null) { for (int i = 0; i < jsonArray.length(); i++) { JSONObject object = jsonArray.optJSONObject(i); if (object != null) { Book book = new Book(); book.id = object.optString("id"); book.imageUrl = "http://tnfs.tngou.net/img" + object.optString("img"); book.name = object.optString("name"); book.summary = object.optString("summary"); books.add(book); } } } } catch (JSONException e) { e.printStackTrace(); } mSelectBookListAdapter.setBookList(books); } @Override public void onFailure(Exception e) { progressBar.setVisibility(View.INVISIBLE); Toast.makeText(getActivity(), "出错:" + e.getMessage(), Toast.LENGTH_SHORT).show(); } }); } }); return view; } @Override public void onDestroyView() { super.onDestroyView(); } }