0

我需要更改我的自定义列表视图适配器,因为我在适配器中列出了分页概念的值。当用户单击加载更多按钮时,列表将在列表视图中再添加 10 行并显示,但列表视图默认显示第一个,但列表视图焦点不应从 lastviewed 行更改?

PropertyListAdapter searchAdapter = new PropertyListAdapter(getApplicationContext(), searchResult, pagination);
searchListView.setAdapter(searchAdapter);
searchListView.smoothScrollToPosition((pageId-1)*10);
4

3 回答 3

0

您可以将适配器类型从 BaseAdapter 更改为 ArrayAdapter。ArrayAdapter 具有 add() 和 addAll() 的功能,可以根据需要将行动态添加到列表视图中。

于 2013-10-08T10:23:15.363 回答
0
 my_array.addAll(other_array);

将新数组中的元素添加到数组中。然后你可以这样做:

 if(mylistAdapter ==null){
    mylistAdapter = new PropertyListAdapter(getApplicationContext(),myPropertyList);
    searchListView.setAdapter(mylistAdapter);
}else{
    mylistAdapter.notifyDataSetChanged();
}

用新元素更新您的 ListView。

于 2013-10-08T10:13:46.633 回答
0

要添加自定义行视图,您可以使用 baseadapter 类通过行布局添加它们并设置为列表视图的适配器

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;
    }
于 2013-10-08T04:26:37.297 回答