Android Open Source - StickyGridHeaders Item List Activity






From Project

Back to project page StickyGridHeaders.

License

The source code is released under:

Apache License

If you think the Android project StickyGridHeaders 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

/*
 Copyright 2013 Tonic Artos/*from w ww .  j  ava2 s  .c  o  m*/

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 */

package com.tonicartos.stickygridheadersexample;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

/**
 * An activity representing a list of Items. This activity has different
 * presentations for handset and tablet-size devices. On handsets, the activity
 * presents a list of items, which when touched, lead to a
 * {@link com.tonicartos.stickygridheadersexample.ItemDetailActivity} representing item details. On tablets, the
 * activity presents the list of items and item details side-by-side using two
 * vertical panes.
 * <p>
 * The activity makes heavy use of fragments. The list of items is a
 * {@link ItemListFragment} and the item details (if present) is a
 * {@link com.tonicartos.stickygridheadersexample.ItemDetailFragment}.
 * <p>
 * This activity also implements the required {@link ItemListFragment.Callbacks}
 * interface to listen for item selections.
 * 
 * @author Tonic Artos
 */
public class ItemListActivity extends ActionBarActivity implements ItemListFragment.Callbacks {
    /**
     * Whether or not the activity is in two-pane mode, i.e. running on a tablet
     * device.
     */
    private boolean mTwoPane;

    /**
     * Callback method from {@link ItemListFragment.Callbacks} indicating that
     * the item with the given ID was selected.
     */
    @Override
    public void onItemSelected(int id) {
        if (mTwoPane) {
            // In two-pane mode, show the detail view in this activity by
            // adding or replacing the detail fragment using a
            // fragment transaction.
            Bundle arguments = new Bundle();
            arguments.putInt(ItemDetailFragment.ARG_ITEM_ID, id);
            ItemDetailFragment fragment = new ItemDetailFragment();
            fragment.setArguments(arguments);
            getSupportFragmentManager().beginTransaction()
            .replace(R.id.item_detail_container, fragment)
            .commit();
        } else {
            // In single-pane mode, simply start the detail activity
            // for the selected item ID.
            Intent detailIntent = new Intent(this, ItemDetailActivity.class);
            detailIntent.putExtra(ItemDetailFragment.ARG_ITEM_ID, id);
            startActivity(detailIntent);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item_list);

        if (findViewById(R.id.item_detail_container) != null) {
            // The detail container view will be present only in the
            // large-screen layouts (res/values-large and
            // res/values-sw600dp). If this view is present, then the
            // activity should be in two-pane mode.
            mTwoPane = true;

            // In two-pane mode, list items should be given the
            // 'activated' state when touched.
            ((ItemListFragment) getSupportFragmentManager().findFragmentById(R.id.item_list)).setActivateOnItemClick(true);
        }
        // TODO: If exposing deep links into your app, handle intents here.
    }
}




Java Source Code List

com.tonicartos.stickygridheadersexample.ItemDetailActivity.java
com.tonicartos.stickygridheadersexample.ItemDetailFragment.java
com.tonicartos.stickygridheadersexample.ItemListActivity.java
com.tonicartos.stickygridheadersexample.ItemListFragment.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersBaseAdapterWrapper.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersBaseAdapter.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersGridView.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersListAdapterWrapper.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersSimpleAdapterWrapper.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersSimpleAdapter.java
com.tonicartos.widget.stickygridheaders.StickyGridHeadersSimpleArrayAdapter.java