0

我正在尝试实现 swiperefreshlayout,但在“this”处出现错误

public class viewBets_activity extends ActionBarActivity {
    SwipeRefreshLayout swipeLayout;

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

        swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
        swipeLayout.setOnRefreshListener(this);
        swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
                android.R.color.holo_green_light,
                android.R.color.holo_orange_light,
                android.R.color.holo_red_light);

    }


    public void onRefresh() {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                swipeLayout.setRefreshing(false);
            }
        }, 5000);

    }
}

我在swipeLayout.setOnRefreshListener(this); 下面的屏幕截图中收到错误

在此处输入图像描述

4

2 回答 2

4

好吧,既然您添加了屏幕截图,错误就很明显了。

您将错误的论点传递给setOnRefreshListener()! 当然,如果你仔细想想,这是有道理的。你的班级是一个ActionBarActivity. 您试图将其设置OnRefreshListenerActionBarActivity...没有任何意义!您需要将代码更改为:

swipeLayout.setOnRefreshListener(new OnRefreshListener()
  {
    @Override
    public void onRefresh()
      {
      // what you want to happen onRefresh goes here
      }
  });

在这里,您将创建一个新的 OnRefreshListener 对象,并将其添加为侦听器。

对于未来,一般来说,只要您有一个setOn______Listener()方法,您将传递的参数将是On_____Listener您自定义的对象。您可以单独创建,也可以按照我在回答中的方式在 set 方法中直接创建它。

于 2014-11-18T00:38:08.750 回答
0

你的班级不见了

implement SwipeRefreshLayout.OnRefreshListener 

这允许侦听器在作为参数onRefresh传递时引用被覆盖的方法thissetOnRefreshListener

于 2016-03-19T16:46:21.360 回答