2014-07-20 176 views
0

我要動態填充列表 列表視圖這是我的代碼:動態填充列表視圖的Android

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); 
     } 

但dosent工作,我的名單填補但列表視圖dosent填充。

+0

是不是顯示a1到a11?但不是B +我? –

+0

是的,顯示a1至a11,但顯示的是b + i劑量 –

+0

如果列表中的項目少於屏幕高度,該怎麼辦?您需要滾動列表(儘管不可滾動)以顯示項目。 – Simas

回答

1

首先,當您想要更新listView內容時,請記得致電list.notifyDataSetChanged();

而且這種情況下,我建議你使用自定義的適配器和實現方法手動所以你CON覆蓋notifyDataSetChanged()方法,也許是這樣的:

public class MyAdapter entends BaseAdapter{ 
    //Stuff... 
    public void notifyDataSetChanged(){ 
     fillList(); 
     super.notifyDataSetChanged(); 
    } 
} 

希望這會有所幫助,對不起我的僞代碼。

此致敬禮。

+1

非常感謝,這是工作 –