我需要更改自定义listview适配器,因为我在适配器中列出了分页概念的值。 当用户点击load-more按钮时,列表会在listview中再添加10行并显示但是listview是默认的,第一个显示但是listview焦点不应该从lastviewed行改变?
PropertyListAdapter searchAdapter = new PropertyListAdapter(getApplicationContext(), searchResult, pagination);
searchListView.setAdapter(searchAdapter);
searchListView.smoothScrollToPosition((pageId-1)*10);
答案 0 :(得分:0)
要添加自定义rowview,您可以使用baseadapter类通过行布局添加它们并设置为listview的适配器
private class ViewHolder{
public Button b;
}
Override getView and create something like this:
@Override
public View getView(final int position, View convertView, ViewGroup parent){
ViewHandler vh;
if (convertView == null){
convertView = View.inflate(getContext(), R.layout.your_layout, null);
vh = new ViewHolder();
vh.b = (Button) convertView.findViewById(R.id.button1);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
}
vh.b.setText(String.valueOf(getItem(i).intValue()));
vh.b.setOnClickListener(new OnClickListener(){
public void onClick(View v){
if (listener != null){
listener.onListButonItemClicked(getItem(position).intValue());
}
}
});
return convertView;
}
答案 1 :(得分:0)
my_array.addAll(other_array);
将新数组中的元素添加到数组中。然后你可以这样做:
if(mylistAdapter ==null){
mylistAdapter = new PropertyListAdapter(getApplicationContext(),myPropertyList);
searchListView.setAdapter(mylistAdapter);
}else{
mylistAdapter.notifyDataSetChanged();
}
使用新元素更新ListView。
答案 2 :(得分:0)
您可以将适配器类型从BaseAdapter更改为ArrayAdapter。 ArrayAdapter具有add()和addAll()函数,可以根据需要动态地将行添加到列表视图中。