Java android中使用相同重写方法的适配器
我使用的是switch case,在这种情况下,我设置的适配器具有相同的重写方法和重复的代码,因此我希望最小化它Java android中使用相同重写方法的适配器,java,android,Java,Android,我使用的是switch case,在这种情况下,我设置的适配器具有相同的重写方法和重复的代码,因此我希望最小化它 private void settingAdapter(int position) { switch (position) { case 0: adapter = new SongAdapter(getContext(), false, false) { @Override
private void settingAdapter(int position) {
switch (position) {
case 0:
adapter = new SongAdapter(getContext(), false, false)
{
@Override
protected void onOverScrolled() {
super.onOverScrolled();
if(nextPageCount==null||nextPageCount.isEmpty())
{
return;
}
else {
int count = Integer.parseInt(nextPageCount);
getList(count);
}
}
};
customList.setAdapter(adapter);
break;
case 1:
adapter = new ArtistAdapter(getContext(), false, false, false){
@Override
protected void onOverScrolled() {
super.onOverScrolled();
if(nextPageCount==null||nextPageCount.isEmpty())
{
return;
}
else {
int count = Integer.parseInt(nextPageCount);
getList(count);
}
}
};
customList.setAdapter(adapter);
break;
case 2:
adapter = new AlbumAdapter(getContext(), false, false){
@Override
protected void onOverScrolled() {
super.onOverScrolled();
if(nextPageCount==null||nextPageCount.isEmpty())
{
return;
}
else {
int count = Integer.parseInt(nextPageCount);
getList(count);
}
}
};
customList.setAdapter(adapter);
break;
case 3:
adapter = new PlaylistAdapter(getContext(), false, false){
@Override
protected void onOverScrolled() {
super.onOverScrolled();
if(nextPageCount==null||nextPageCount.isEmpty())
{
return;
}
else {
int count = Integer.parseInt(nextPageCount);
getList(count);
}
}
};
customList.setAdapter(adapter);
break;
}
}
如果使用同一适配器,最好的策略是在新文件的类中创建
CustomAdapter
适配器,在活动中导入它,并在每次需要时创建实例
如果您不想这样做,您可以在未设置适配器时控制情况,并在
默认值中设置它。这里只需要一个适配器。难道不能让所有的适配器扩展同一个类吗
public class BaseAdapter extends SomeAdapterOfYours {
//... everything needed
@Override
protected void onOverScrolled() {
super.onOverScrolled();
if(nextPageCount==null||nextPageCount.isEmpty()){
return;
}
else {
int count = Integer.parseInt(nextPageCount);
getList(count);
}
}
}
然后是您的自定义适配器:
public class ArtistAdapter extends BaseAdapter {
//custom adapter stuff
}
等等
public class SongAdapter extends BaseAdapter {
//custom adapter stuff
}