Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Implementing Designs for Android Customizing a ListView for the Inbox Adding a Swipe-to-Refresh Gesture

Where am I going wrong here

Am not sure why the compiler is disagreeing with me here

MainActivity.java
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;

public class MainActivity extends ListActivity {

    /*
     * Some code has been omitted for brevity
     */
    public SwipeRefreshLayout mRefreshLayout;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public OnRefreshListener mOnRefreshListener = new OnRefreshListener() {
        @Override
        public void onRefresh() {
            // Code that refreshes the content in the layout...

          mRefreshLayout= (SwipeRefreshLayout)findViewById(R.id.refreshLayout);
        }
    }; 
}
Aaron Kaye
Aaron Kaye
10,948 Points

What does the compiler say?

1 Answer

Daniel Hartin
Daniel Hartin
18,106 Points

Hi

It looks as if you've simply put the declaration inside the wrong method, you should declare your layout inside the onCreate() method the code looks fine to me.

I've included the code needed to pass the challenge below, so don't look if you would like to try it our for yourself.

import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;

public class MainActivity extends ListActivity {

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

 public SwipeRefreshLayout mRefreshLayout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.refreshLayout);
        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
          @Override
          public void onRefresh(){

            mRefreshLayout.setRefreshing(false);

          }
        }); 

    }
}

Hope this helps Daniel