【发布时间】:2018-07-03 12:57:32
【问题描述】:
我的FragmentStatePagerAdapter 中有这个switch case statement。我研究了许多类似的问题,但没有一个提供更简短的答案,这意味着 switch 案例仍在他们的代码中。
这段代码真的很重复而且很难看。有没有办法让它看起来更短?
@Override
public SongListFragment getItem(int position) {
SongListFragment slf = new SongListFragment();
switch (position) {
case 0:
slf.setAudioList(getAudioList(tabTitles[0]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 1:
slf.setAudioList(getAudioList(tabTitles[1]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 2:
slf.setAudioList(getAudioList(tabTitles[2]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 3:
slf.setAudioList(getAudioList(tabTitles[3]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 4:
slf.setAudioList(getAudioList(tabTitles[4]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
default:
return null;
}
}
【问题讨论】:
-
查看每种情况下的代码。标记共同的部分和不同的部分:除了一个整数之外,所有的东西都是一样的,那就是开关值......
标签: java switch-statement case fragmentstatepageradapter