方法对SwipeRefreshLayout没有影响

时间:2017-03-10 21:45:19

标签: java android swiperefreshlayout

我在SwipeRefreshLayout上使用的每个方法都不会对它产生影响。我对Java很新,所以我可能一直在定义我的变量。

这是我的onCreate():

 public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        SharedPreferences pref = getSharedPreferences("application_settings", MODE_PRIVATE);
        Boolean darkTheme = (pref.getBoolean("DarkTheme", false));
        if(darkTheme == false){
           setTheme(R.style.AppTheme);
        }
        else{
           setTheme(R.style.DarkAppTheme);
        }
        setContentView(R.layout.activity_main);
        .
        .
        .
       final SwipeRefreshLayout test = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
        if (darkTheme == true) {
            test.setColorSchemeResources(R.color.grey_check);
        }
        else{
            test.setColorSchemeResources(R.color.colorPrimary);
        }
        test.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

            @Override
            public void onRefresh() {
                test.setRefreshing(true);
                OnSwipe();
            }
        });
   }

这是我的OnSwipe()方法:

public void OnSwipe(){
      mRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
      .
      . // Some data processing
      .       
      mRefreshLayout.setRefreshing(false);

每当我使用一种方法来影响它的状态时,除了要显示的图标外什么都不会发生。它不会停止显示刷新图标。

1 个答案:

答案 0 :(得分:1)

编辑:我在5分钟前快速阅读了你的问题,我编辑答案:

您应该将其设置为全局变量:

SwipeRefreshLayout test;

然后在onCreate()中,设置如下:

test = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);

完成这两个步骤后,您可以像这样使用它:

test.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            test.setRefreshing(true);
            OnSwipe();
        }
    });

和onSwipe():

public void OnSwipe(){
  .
  . // Some data processing
  .       
  test.setRefreshing(false);
}