An Android GridView of text quotes (Fragment, layout, and AsyncTask source code)

Before I completely delete this code from my current Android application, I want to make a copy of it here. It was intended to show a series of quotes (text phrases) in a “Grid” (GridView), but (a) I never got it working as desired, and (b) I decided I didn’t want it in my application anyway.

Here’s the source code for the Java controller/fragment class:

package com.alvinalexander.foo;

import java.util.ArrayList;
import android.app.Fragment;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class QuotesGridFragment extends Fragment {

    GridView gridView;
    ArrayList<String> mItems;
    ThumbnailDownloader<ImageView> mThumbnailThread;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);
        new FetchItemsTask().execute();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_quotes_grid, container, false);
        gridView = (GridView)v.findViewById(R.id.quotesGridView);
        setupAdapter();
        return v;
    }

    void setupAdapter() {
        if (getActivity() == null || gridView == null) return;
        if (mItems != null) {
            gridView.setAdapter(new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_gallery_item, mItems));
        } else {
            gridView.setAdapter(null);
        }
    }

    private class FetchItemsTask extends AsyncTask<Void,Void,ArrayList<String>> {
        @Override
        protected ArrayList<String> doInBackground(Void... params) {
            ArrayList<String> quotes = DatabaseManager.get(getActivity()).getAllActiveQuotes();
            return quotes;
        }

        @Override
        protected void onPostExecute(ArrayList<String> items) {
            mItems = items;
            setupAdapter();
        }
    }

}

And here’s the code for the fragment’s layout file:

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/quotesGridView"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:columnWidth="120dp"
          android:numColumns="auto_fit"
          android:stretchMode="columnWidth"
          android:clickable="true"
          android:fadeScrollbars="true">

</GridView>

As I noted above, the GridView didn’t look very good (yet), but at least this is some starter code in case you want to create a grid/wall of text quotes (or if I decide later that I want to try this feature again).