kat*_*oty -1 java case switch-statement fragmentstatepageradapter
我有这个switch case statement在我的FragmentStatePagerAdapter.我已经研究了许多类似的问题,但没有一个提供更短的答案,这意味着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;
}
}
Run Code Online (Sandbox Code Playgroud)
由于每个开关盒具有几乎相同的主体,因此只有索引/位置不同.你可以在第一时间完全摆脱开关盒:
@Override
public SongListFragment getItem(int position) {
SongListFragment slf = new SongListFragment();
slf.setAudioList(getAudioList(tabTitles[position]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |