android--------listView 分段加载数据
来源:互联网 发布:怎样设计淘宝店铺 编辑:程序博客网 时间:2024/05/16 16:17
功能:每次加载数据5条,然后往下加载
定义适配器:
public class MusicAdapter extends BaseAdapter {
Context mContext;
LayoutInflater mInflater;
int mCount;
List<String> mMusicList;// = new ArrayList<String>();
public MusicAdapter(Context c, List<String> musicList) {
this.mContext = c;
mInflater = LayoutInflater.from(mContext);
this.mMusicList = musicList;
}
public void setData(List<String> musicList) {
// TODO Auto-generated method stub
this.mMusicList = musicList;
this.notifyDataSetChanged();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
if (mMusicList == null)
return 0;
else
return mMusicList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = this.mInflater.inflate(R.layout.list_items, null);
viewHolder = new ViewHolder();
viewHolder.mImageView = (ImageView) convertView.findViewById(R.id.musicimageView);
viewHolder.mTextViewName = (TextView) convertView.findViewById(R.id.musicName);
viewHolder.mTextViewAlbum = (TextView) convertView.findViewById(R.id.musicAlbum);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.mImageView
.setImageBitmap(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.music));
viewHolder.mTextViewName.setText((position + 1) + ". " + mMusicList.get(position) + "Muisic");
viewHolder.mTextViewName.setTextSize(30);
viewHolder.mTextViewAlbum.setText("Album..........");
viewHolder.mTextViewAlbum.setTextSize(25);
return convertView;
}
private class ViewHolder {
private ImageView mImageView;
private TextView mTextViewName;
private TextView mTextViewAlbum;
}
public void addItem(String item) {
;// mMusicList.add(item);
}
}
mainActivity:
private void initMusicView() {
// TODO Auto-generated method stub
mMusicListView = (ListView) this.findViewById(R.id.listView);
mMusicAdapter = new MusicAdapter(this, mMusicList);
mMusicListView.setAdapter(mMusicAdapter);
mMusicListView.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int id, long arg3) {
// TODO Auto-generated method stub
Log.i(TAG, "...onItemSelected...id:" + id);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
mMusicListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int id, long arg3) {
// TODO Auto-generated method stub
Log.i(TAG, "...setOnItemClickListener...id:" + id);
}
});
loadMusicThread = Executors.newSingleThreadScheduledExecutor();
loadMusicThread.submit(new loadMusicTask());
musicHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
Log.i(TAG, "musicHandler-> handleMessage...");
if (msg.what == 0x1) {
List<String> data = (List<String>) msg.obj;
mMusicAdapter.setData(data);
mMusicListView.requestFocus();
/* continous load data */
if (data.size() != 60) {
mMusicListView.setSelection(data.size() - 1);
loadMusicThread.submit(new loadMusicTask());
}
else {
mMusicListView.setSelection(0);
}
}
super.handleMessage(msg);
}
};
}
class loadMusicTask implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
// load
// data://这里放你网络数据请求的方法,我在这里用线程休眠5秒方法来处理
try {
List<String> temp = loadData();
Message msg = new Message();
msg.what = 0x1;
msg.obj = temp;
musicHandler.sendMessage(msg);
Thread.sleep(5 * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public List<String> loadData() {
int size = mMusicList.size();
for (int i = 1; i < 6; i++) {
String item = String.valueOf(size + i);
mMusicList.add(item);
// mMusicAdapter.addItem(item);
}
return mMusicList;
}
- android--------listView 分段加载数据
- ListView 分段加载数据
- ListView动态加载图片以及分段加载数据
- UITableView分段加载数据
- Android ListView 滚动加载数据
- Android ListView 滚动加载数据
- Android【 ListView】滑动数据加载
- android listView动态加载数据
- Android Listview动态加载数据
- android listView滑动加载数据
- android ListView 数据分页加载
- Android ListView分页加载数据
- Android ListView分页加载数据
- Android -ListView数据加载补充
- android ListView 加载数据乱码
- Android Listview动态加载数据
- Android自定义ScrollView分段加载大文本数据到TextView
- Android自定义ScrollView分段加载大文本数据到TextView
- 工作两年~跌跌撞撞
- android下ListView的奇异异常大集合(持续更新)
- 【分治】求逆序对个数并打印逆序对
- 快速排序的时间复杂度计算
- SharePoint 2010新手入门
- android--------listView 分段加载数据
- js 删除数组中的重复项
- openfire客户端文件传输学习笔记(一)
- Insertion Sort List
- RHEL 6.3安装(超级详细图解教程)
- 关于把字符串整数转换成整数的程序
- sed (GNU)
- iOS组件之UILabel
- HTML5图表开发工具大全