public class RankingActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranking);
FragmentRanking fragmentRanking = new FragmentRanking();
FragmentManager manager = getSupportFragmentManager();
context = getBaseContext();
mainView = findViewById(R.id.layout_ranking);
yearDropdown = (MaterialSpinner) findViewById(R.id.year_spinner);
Gson gson = new Gson();
String data = FragmentRanking.getJsonData(context, "years");
if (data !=null)
years = Arrays.asList(gson.fromJson(data, Year[].class));
else
years = null;
List<String> yearList = new ArrayList<>(years.size());
for (Year year : years) {
yearList.add(year.getYear() != null ? year.getYear() : "2019");
}
yearDropdown.setItems(yearList);
fragmentYears = new FragmentYears();
yearDropdown.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener() {
@Override
public void onItemSelected(MaterialSpinner view, int position, long id, Object item) {
switch (position){
case 0:
FragmentRanking.setCurrentYear(2019);
break;
case 1:
FragmentRanking.setCurrentYear(2018);
break;
case 2:
FragmentRanking.setCurrentYear(2017);
break;
default:
FragmentRanking.setCurrentYear(2020);
break;
}
}
});
manager.beginTransaction().add(R.id.layout_ranking, fragmentRanking).commit();
}
public static void loadFragmentYear(){
fragmentYears.loadYears(context);
}
public static void makeSnackBar(String text, Boolean action){
if(!snackTime) return;
Snackbar snackbar = Snackbar.make(getMainView(),text,Snackbar.LENGTH_LONG);
snackbar.show();
setFalseSnackTime();
}
private static View getMainView() {
return mainView;
}
public static void setFalseSnackTime(){
snackTime = false;
new Handler(Looper.getMainLooper()).postDelayed(() -> snackTime = true,3000);
}
Attempt to invoke interface method 'int java.util.List.size()' on null reference
在您的代码中是years。