在Android列表的END处添加更多YouTubeThumbnailView

时间:2015-02-25 15:06:50

标签: android gridview scroll youtube-api adapter

我正在开发一个应用程序,它显示youTubeThumbnailView的网格视图,我想在用户到达列表末尾时加载更多youTubeThumbnailView。 假设我有2个视频列表,我想在开头加载第一个列表,如果用户在列表的底部,则加载第二个列表。

我的自定义适配器,用于显示网格视图

public class CustomGrid extends BaseAdapter{
private Context mContext;
private final String[] video_id;
YouTubeThumbnailView youTubeThumbnailView;
public CustomGrid(Context c,  String[] video_id) {
    mContext = c;
    this.video_id=video_id;
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return video_id.length;
}
@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
}
@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View grid;
    LayoutInflater inflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        grid = new View(mContext);
        grid = inflater.inflate(R.layout.grid_single, null);
        youTubeThumbnailView= (YouTubeThumbnailView) grid.findViewById(R.id.youtube_view);
        youTubeThumbnailView.initialize(DeveloperKey.DEVELOPER_KEY,new ThumbnailListener(mContext,video_id[position]));
    } else {
        grid = (View) convertView;
    }
    return grid;
}


MainActivity类

CustomGrid adapter = new CustomGrid(MainActivity.this,youtube_id);
    grid=(GridView)findViewById(R.id.grid);
    grid.setAdapter(adapter);

现在我可以使用Abslistview.onscrolllistener检测用户是否在底部滚动。如何添加更多youTubeThumbnailView到适配器并调用adapter.notifydatasetchanged()???
请帮忙

1 个答案:

答案 0 :(得分:0)

为您的适配器创建一个公共方法,并使用新的List调用它。

public void updateData(List<T> dataItems) {
        this.mDataItems = dataItems;       
        notifyDataSetChanged();
    }

编辑。 完全符合您的情况:

 public void updateData(String[] video) {
            this.video_id= video;       
            notifyDataSetChanged();
        }

然后在片段或活动中。

adapter.updateData(yourNewStringArray);