android:如何将行(View)添加到现有的自定义列表视图适配器中?

时间:2013-10-08 04:21:19

标签: android listview adapter custom-adapter

我需要更改自定义listview适配器,因为我在适配器中列出了分页概念的值。 当用户点击load-more按钮时,列表会在listview中再添加10行并显示但是listview是默认的,第一个显示但是listview焦点不应该从lastviewed行改变?

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

3 个答案:

答案 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()函数,可以根据需要动态地将行添加到列表视图中。