Pike D.
Pike D.

Reputation: 691

SwipeRefreshLayout Refresh Listener not calling onRefresh()

I currently have a SwipeRefreshLayout that isn't calling its OnRefresh method whenever I pull down. Is something wrong with my code?

public class MainActivity extends AppCompatActivity {
private SwipeRefreshLayout swipe_view;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    swipe_view = (SwipeRefreshLayout) findViewById(R.id.this_will_work);

    swipe_view.setOnRefreshListener(new OnRefreshListener()
    {
        @Override
        public void onRefresh()
        {
            Toast.makeText(getApplicationContext(), "OnRefresh() test", Toast.LENGTH_SHORT).show();
        }
    });

Upvotes: 1

Views: 1499

Answers (1)

user6490462
user6490462

Reputation:

You should have a service or something that will be updated like below :

private void refresh() {
    startService(new Intent(this, UpdaterService.class));
}

then Refresh :

mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mSwipeRefreshLayout.post(new Runnable() {
                                @Override
                                public void run() {
                                    mSwipeRefreshLayout.setRefreshing(true);
                                    refresh();
                                }});

//here refreshed Item
   //getLoaderManager().initLoader(0, null, this);

    if (savedInstanceState == null) {
        refresh();
    }

and your onRefresh() should contain the same method refresh().

Upvotes: 2

Related Questions