Reputation: 691
Every method I use on the SwipeRefreshLayout doesn't have an effect on it. I have quite new to Java, so it might have been how I have been defining my variables.
Here is my 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();
}
});
}
and here is my OnSwipe() method:
public void OnSwipe(){
mRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
.
. // Some data processing
.
mRefreshLayout.setRefreshing(false);
Whenever I use a method to affect its state, nothing happens except for the icon to show up. It will not stop showing the refresh icon.
Upvotes: 0
Views: 37
Reputation: 188
edit: I read your question quickly 5 mins ago, I edit the answer:
You should set this as global variable:
SwipeRefreshLayout test;
then in onCreate(), set it like this:
test = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
after these 2 steps, you can use it like this:
test.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
test.setRefreshing(true);
OnSwipe();
}
});
and onSwipe():
public void OnSwipe(){
.
. // Some data processing
.
test.setRefreshing(false);
}
Upvotes: 1