2017-03-10 66 views
0

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

这里是我的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

编辑:我看了你的问题很快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); 
} 
+0

不幸的是这个解决方案是行不通的,但它仍然是不叫OnSwipe()。 +1虽然试图帮助我。 –

+0

请务必在您的活动布局XML中正确放置视图。这一定是工作,你错过了我想的另一点。你也可以移动“test.setRefreshing(true);”在onSwipe()方法的第一行,但我不认为这个问题与这条线有关。 – ACAkgul