Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Android Implementing Designs for Android Customizing a GridView for Friends Converting a ListView to a GridView

am stuck.help

Now switch over to ProductsActivity.java and convert it to use the new GridView. Use the comments in the code as your guide to create and set mGridView in this simplified example.

activity_products.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

</RelativeLayout>
ProductsActivity.java
import android.os.Bundle;
import android.widget.GridView;

// This parent class no longer applies. Switch it to Activity
public class ProductsActivity extends ListActivity {

    /*
     * Some code has been omitted for brevity!
     */

    // Declare mGridView here!   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_products);

        // Set mGridView here!
    }
}

3 Answers

Hi there,

First, you need to amend the class inheritance - change that from ListActivity to Activity.

Where is says declare mGridView here do just that. You just need a variable that can hold a GridView. That looks like:

GridView mGridView;

Within onCreate() you need to assign a value to mGridView. You've already given it as id within the XML file, so you just need to link the two together with findViewById() - don't forget to cast the returned type:

mGridView = (GridView) findViewById(R.id.gridView);

That should get you through.

Steve.

thanks you so much Steve...

import android.os.Bundle; import android.widget.GridView;

// This parent class no longer applies. Switch it to Activity public class ProductsActivity extends Activity {

/*
 * Some code has been omitted for brevity!
 */

// Declare mGridView here!

protected GridView mGridView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_products);

    // Set mGridView here!
  mGridView = (GridView) findViewById(R.id.gridView);
}

}

Hi there,

That part of the challenge is amended where each of the commetns are placed.

It ends up looking like:

import android.os.Bundle;
import android.widget.GridView;

// This parent class no longer applies. Switch it to Activity
public class ProductsActivity extends Activity {

    /*
     * Some code has been omitted for brevity!
     */

    // Declare mGridView here!
    GridView mGridView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_products);

        // Set mGridView here!
      mGridView = (GridView) findViewById(R.id.gridView);
    }
}

Steve.