2014-07-07 66 views
-2

listview得到填就開始,但之後我不能找到一種方法來做出改變 請參見下文Some1知道爲什麼我的listview數據沒有改變?

public class myFragment extends android.support.v4.app.Fragment 
    { 


ListView list; 

ArrayList<String> restorants=new ArrayList<String>(); 

Manager m=new Manager(); 
ArrayAdapter<String> adapter; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_, container, false); 


    list=(ListView) rootView.findViewById(R.id.myList); 

    for(Restorant r : m.getResByCity("nyc")) 
    { 
     restorants.add(r.getName()); 
    } 
adapter=new ArrayAdapter<String>(getActivity(), R.layout.item_list, R.id.restorantItem,restorants); 

list.setAdapter(adapter); 



    return rootView; 
} 
public void makeChange(String s) 
{ 
    restorants.remove(0); 


    ((ArrayAdapter)list.getAdapter()).notifyDataSetChanged(); 

} 
} 

的代碼,而調用方法makeChange()我已經檢查了restorants項目被移除,以便有與調用方法

makeChange()沒有問題,是從我mainActivity包含viewpager凡本fragment包含在viewpager調用。

+0

我看不出哪裏是你的適配器變化?您更改ArrayList restourants,但不是適配器。 – Mike

+0

當我打電話notifydatasetchange,我認爲,如果retorants更改然後listview必須刷新並重新添加restorants? – user3583415

回答

0

您需要刪除從您的適配器提供的數據集的元素,

adapter.remove(s) 

Here你可以找到的文檔

+0

在列表視圖中沒有變化:( – user3583415

+0

更新您對代碼 – Blackbelt

+0

所做更改的問題我只添加了adapter.remove(restorants.get(0))來查找是否會發生某些事情,但沒有任何結果。我犯了一個錯誤? – user3583415

相關問題