我想用List动态填充listview 这是我的代码:
ListView lis;
List<String> values=new ArrayList<String>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_pages, container, false);
values.add("a1");
values.add("a2");
values.add("a3");
values.add("a4");
values.add("a5");
values.add("a6");
values.add("a7");
values.add("a8");
values.add("a9");
values.add("a10");
values.add("a11");
lis =(ListView)rootView.findViewById(R.id.listView1);
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(rootView.getContext(), android.R.layout.simple_list_item_1,values );
lis.setAdapter(arrayAdapter);
lis.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState)
{
int first = view.getFirstVisiblePosition();
int count = view.getChildCount();
if (scrollState == SCROLL_STATE_IDLE || (first + count > arrayAdapter.getCount()) ) {
fill_list();
}
}
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount)
{
}
});
return rootView;
}
public void fill_list()
{
for (int i = 0; i < 10; i++)
{
values.add("b "+ i);
}
但它起作用了,我的清单是填充但是Listview剂量填充。
答案 0 :(得分:1)
首先,记得在想要更新listView内容时调用list.notifyDataSetChanged();
。
同样对于这种情况,我建议您使用自定义适配器并手动实现您的方法,以便您覆盖notifyDataSetChanged()方法,可能类似于:
public class MyAdapter entends BaseAdapter{
//Stuff...
public void notifyDataSetChanged(){
fillList();
super.notifyDataSetChanged();
}
}
希望这有帮助,抱歉我的伪代码。
最好的问候。