我在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);
每当我使用一种方法来影响它的状态时,除了要显示的图标外什么都不会发生。它不会停止显示刷新图标。
答案 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);
}