Android Open Source - Book-MetaSearch Search Results Fragment






From Project

Back to project page Book-MetaSearch.

License

The source code is released under:

Apache License

If you think the Android project Book-MetaSearch listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.grosinger.bookmetasearch.fragment;
//  w ww .  ja  v a2  s  . com
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;

import net.grosinger.bookmetasearch.BookDetail;
import net.grosinger.bookmetasearch.R;
import net.grosinger.bookmetasearch.search.SearchResultAdapter;
import net.grosinger.bookmetasearch.book.Book;

import java.util.Arrays;
import java.util.List;

/**
 * Show a list of all search results using a custom
 * ListView adapter. Exposes a setResults method for
 * updating list.
 *
 * @author Tony
 * @since 11/2/2013
 */
public class SearchResultsFragment extends Fragment implements AdapterView.OnItemClickListener {

    private List<Book> searchResults;
    private SearchResultAdapter listAdapter;

    private ListView resultsListView;
    private LinearLayout resultsLayout;
    private View loadingView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Log.d(getClass().getSimpleName(), "Creating View");

        return inflater.inflate(R.layout.fragment_search_results, container, false);
    }

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

        loadingView = getActivity().findViewById(R.id.linearLayout_resultsLoading);
        resultsListView = (ListView) getActivity().findViewById(R.id.listView_resultsList);
        resultsLayout = (LinearLayout) getActivity().findViewById(R.id.linearLayout_resultsLayout);

        // Create the custom ListView adapter and set it on the list
        listAdapter = new SearchResultAdapter(getActivity(), null);
        resultsListView.setAdapter(listAdapter);
        resultsListView.setOnItemClickListener(this);

        // Load saved data if there is any
        if (savedInstanceState != null) {
            Log.d(getClass().getSimpleName(), "Loading saved state");
            Book[] results = (Book[]) savedInstanceState.getParcelableArray("results");
            setResults(Arrays.asList(results));
        }
    }

    @Override
    public void onSaveInstanceState (Bundle outState) {
        Log.d(getClass().getSimpleName(), "Saving instance state");

        outState.putParcelableArray("results", searchResults.toArray(new Book[searchResults.size()]));
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Log.d(getClass().getSimpleName(), "Item clicked: " + position);
        if (searchResults != null) {
            Book selectedBook = searchResults.get(position);

            Intent status = new Intent(getActivity(), BookDetail.class);
            status.putExtra("book", selectedBook);
            startActivity(status);
        }
    }

    public void setResults(List<Book> results) {
        Log.d(getClass().getSimpleName(), "Setting new results");

        searchResults = results;

        listAdapter.clear();
        listAdapter.addAll(results);
        listAdapter.notifyDataSetChanged();

        loadingView.setVisibility(View.INVISIBLE);
        resultsLayout.setVisibility(View.VISIBLE);
    }
}




Java Source Code List

com.ECS.client.jax.Accessories.java
com.ECS.client.jax.Arguments.java
com.ECS.client.jax.BrowseNode.java
com.ECS.client.jax.BrowseNodes.java
com.ECS.client.jax.Collections.java
com.ECS.client.jax.CustomerReviews.java
com.ECS.client.jax.DecimalWithUnits.java
com.ECS.client.jax.EditorialReview.java
com.ECS.client.jax.EditorialReviews.java
com.ECS.client.jax.Errors.java
com.ECS.client.jax.ImageSet.java
com.ECS.client.jax.Image.java
com.ECS.client.jax.ItemAttributes.java
com.ECS.client.jax.ItemLink.java
com.ECS.client.jax.ItemLinks.java
com.ECS.client.jax.Item.java
com.ECS.client.jax.LoyaltyPoints.java
com.ECS.client.jax.Merchant.java
com.ECS.client.jax.NewReleases.java
com.ECS.client.jax.NonNegativeIntegerWithUnits.java
com.ECS.client.jax.OfferAttributes.java
com.ECS.client.jax.OfferListing.java
com.ECS.client.jax.OfferSummary.java
com.ECS.client.jax.Offer.java
com.ECS.client.jax.Offers.java
com.ECS.client.jax.Price.java
com.ECS.client.jax.Promotion.java
com.ECS.client.jax.Promotions.java
com.ECS.client.jax.Property.java
com.ECS.client.jax.RelatedItem.java
com.ECS.client.jax.RelatedItems.java
com.ECS.client.jax.SimilarProducts.java
com.ECS.client.jax.TopItemSet.java
com.ECS.client.jax.TopSellers.java
com.ECS.client.jax.Tracks.java
com.ECS.client.jax.VariationAttribute.java
com.ECS.client.jax.VariationDimensions.java
com.ECS.client.jax.VariationSummary.java
com.ECS.client.jax.Variations.java
net.grosinger.bookmetasearch.BookDetail.java
net.grosinger.bookmetasearch.BookInventoryAdapter.java
net.grosinger.bookmetasearch.Home.java
net.grosinger.bookmetasearch.SearchActivity.java
net.grosinger.bookmetasearch.book.Author.java
net.grosinger.bookmetasearch.book.Book.java
net.grosinger.bookmetasearch.book.provider.BookProvider.java
net.grosinger.bookmetasearch.book.provider.LibraryBookProvider.java
net.grosinger.bookmetasearch.book.provider.RetailBookProvider.java
net.grosinger.bookmetasearch.fragment.DetailFragment.java
net.grosinger.bookmetasearch.fragment.HomeFragment.java
net.grosinger.bookmetasearch.fragment.SearchResultsFragment.java
net.grosinger.bookmetasearch.inventory.AvailableBook.java
net.grosinger.bookmetasearch.inventory.InventoryHeader.java
net.grosinger.bookmetasearch.inventory.InventoryListItem.java
net.grosinger.bookmetasearch.loader.AmazonQuery.java
net.grosinger.bookmetasearch.loader.AsyncImageLoader.java
net.grosinger.bookmetasearch.loader.GoodreadsQuery.java
net.grosinger.bookmetasearch.loader.GoogleQuery.java
net.grosinger.bookmetasearch.loader.InventoryLoader.java
net.grosinger.bookmetasearch.loader.InventoryQuery.java
net.grosinger.bookmetasearch.loader.ProductLoader.java
net.grosinger.bookmetasearch.loader.ProductQuery.java
net.grosinger.bookmetasearch.search.RecentBookSearchSuggestionsProvider.java
net.grosinger.bookmetasearch.search.SearchResultAdapter.java