listview第一次加载,显示正常,点击item进去也没有异常。下图是 第一次加载数据列表和点击 游记2 获得的数据点击查看更多,第二次加载。显示4个item。但是单击 第一次加载数据。发现 position 是第二次加载item。下图是 第二次加载更多 和点击 游记2的数据。但是这些数据是 准备就绪,上路 的。点击 准备就绪,上路 这个item的时候,提示数组越界。
这是我插入数据和点击item的代码adapter.java
public void addItem(Map<String, Object> load){
this.list.add(load);
Log.v("albumAdapter",String.valueOf(list.size()));
}
@Override
public int getCount() {
if(list.size()!=0)
{
return list.size();
}else{
return 0;
}
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
albumHolder holder=new albumHolder();;
if(convertView==null){
convertView=inflater.inflate(R.layout.album_item, null);
holder.covert=(ImageView)convertView.findViewById(R.id.album_item_covert);
holder.name=(TextView)convertView.findViewById(R.id.album_item_name);
holder.time=(TextView)convertView.findViewById(R.id.album_item_time);
holder.counts=(TextView)convertView.findViewById(R.id.album_item_count);
holder.covert.setScaleType(ScaleType.CENTER_CROP);
convertView.setTag(holder);//绑定ViewHolder对象
}else{
holder=(albumHolder)convertView.getTag();//取出ViewHolder对象
}
holder.name.setText(list.get(position).get("name").toString());
holder.counts.setText(list.get(position).get("counts").toString());
holder.time.setText(list.get(position).get("time").toString());
activity类
public void LoadData(){ //点击加载更多
//int count=adapter.getCount();
for(int i=0;i< album_list.size();i++){
Map<String, Object> map=new HashMap<String, Object>();
Album album_entity = album_list.get(i);
map.put("pid", album_entity.getPid());
map.put("name", album_entity.getName());
map.put("counts",album_entity.getCounts());
map.put("time", album_entity.getDate());
map.put("covert",album_entity.getCovert());
adapter.addItem(map);
}
} 下面是将数据显示在列表
if (album_list.size()==0) {
album_listview.onLoadMoreComplete(false);
Error_Dialog(context, "没有数据更新");
}else{
//album_listview.setAdapter(adapter);
//adapter.notifyDataSetInvalidated();
try{
LoadData();
}catch (Exception e) {
e.printStackTrace();
}
adapter.notifyDataSetChanged();
//album_listview.setAdapter(adapter);
album_listview.setSelection(visibleLast - visibleCount + 1);
album_listview.onLoadMoreComplete(false);
}
}
这是 点击item的代码
album_listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Album albums=album_list.get(position);
try {
pid=album_list.get(position-1).getPid();
Log.v("albumActivity", pid);
Intent intent=new Intent();
Bundle bundle=new Bundle();
intent.setClass(albumActivity.this, albumItemActivity.class);
bundle.putString("pid", pid);
intent.putExtras(bundle);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
麻烦看一下。现在卡在这里,我很急,在线等listview分页
这是我插入数据和点击item的代码adapter.java
public void addItem(Map<String, Object> load){
this.list.add(load);
Log.v("albumAdapter",String.valueOf(list.size()));
}
@Override
public int getCount() {
if(list.size()!=0)
{
return list.size();
}else{
return 0;
}
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
albumHolder holder=new albumHolder();;
if(convertView==null){
convertView=inflater.inflate(R.layout.album_item, null);
holder.covert=(ImageView)convertView.findViewById(R.id.album_item_covert);
holder.name=(TextView)convertView.findViewById(R.id.album_item_name);
holder.time=(TextView)convertView.findViewById(R.id.album_item_time);
holder.counts=(TextView)convertView.findViewById(R.id.album_item_count);
holder.covert.setScaleType(ScaleType.CENTER_CROP);
convertView.setTag(holder);//绑定ViewHolder对象
}else{
holder=(albumHolder)convertView.getTag();//取出ViewHolder对象
}
holder.name.setText(list.get(position).get("name").toString());
holder.counts.setText(list.get(position).get("counts").toString());
holder.time.setText(list.get(position).get("time").toString());
activity类
public void LoadData(){ //点击加载更多
//int count=adapter.getCount();
for(int i=0;i< album_list.size();i++){
Map<String, Object> map=new HashMap<String, Object>();
Album album_entity = album_list.get(i);
map.put("pid", album_entity.getPid());
map.put("name", album_entity.getName());
map.put("counts",album_entity.getCounts());
map.put("time", album_entity.getDate());
map.put("covert",album_entity.getCovert());
adapter.addItem(map);
}
} 下面是将数据显示在列表
if (album_list.size()==0) {
album_listview.onLoadMoreComplete(false);
Error_Dialog(context, "没有数据更新");
}else{
//album_listview.setAdapter(adapter);
//adapter.notifyDataSetInvalidated();
try{
LoadData();
}catch (Exception e) {
e.printStackTrace();
}
adapter.notifyDataSetChanged();
//album_listview.setAdapter(adapter);
album_listview.setSelection(visibleLast - visibleCount + 1);
album_listview.onLoadMoreComplete(false);
}
}
这是 点击item的代码
album_listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Album albums=album_list.get(position);
try {
pid=album_list.get(position-1).getPid();
Log.v("albumActivity", pid);
Intent intent=new Intent();
Bundle bundle=new Bundle();
intent.setClass(albumActivity.this, albumItemActivity.class);
bundle.putString("pid", pid);
intent.putExtras(bundle);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
麻烦看一下。现在卡在这里,我很急,在线等listview分页
试试 mXListView.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if (arg2 == -1) {
return;
}
try {
ReacnnListView listView = (ReacnnListView) arg0;
SupplierBean muUserCouponLog = (SupplierBean) listView
.getItemAtPosition(arg2);
if (listView != null && muUserCouponLog != null) {
Intent mIntent = new Intent(getActivity(),
FrmSupplierDetailsRelatedMsgActivity.class);
mIntent.putExtra(
SharedPreferencesFieldConfig.Skip_SupplierList_SupllierName,
muUserCouponLog.getUsername()); mIntent.putExtra(
SharedPreferencesFieldConfig.Skip_SupplierList_CompanyName,
muUserCouponLog.getCompany());
startActivity(mIntent);
}
} catch (Exception e) {
LogUtil.e(TAG, "", e, false);
}
}
});