2010-07-06 127 views
2

我有一個ListView的問題,我用ArrayList來存儲數據,以及一個自定義的適配器。但是,當我刪除所有數據並再次添加一個項目時,它不會在此列表中顯示任何內容。我的列表會發生什麼,任何人都可以幫助我?Android:如何將數據添加到空列表視圖

static ArrayList<String> chattingListData=new ArrayList<String>(); 
static IconicAdapter chattingListDataAdapter; 

@Override 
public void onCreate(Bundle icicle) { 

    super.onCreate(icicle); 
    chattingListDataAdapter=new IconicAdapter(this); 
    setListAdapter(chattingListDataAdapter); 
    registerForContextMenu(this.getListView()); 

} 

class IconicAdapter extends ArrayAdapter { 

    Activity context; 

    IconicAdapter(Activity context) { 
     super(context, R.layout.chatting_list, chattingListData);  
     this.context=context; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater=context.getLayoutInflater(); 
     View row=inflater.inflate(R.layout.chatting_list, null); 
     TextView label=(TextView)row.findViewById(R.id.chattinglist_userName); 
     label.setText(chattingListData.get(position)); 
     return(row); 
    } 
} 

我使用靜態的ArrayList從外部修改數據,當我開始ListView的活動,並添加數據,這是確定的,但是當我刪除所有數據,我不能再添加到數據列表。請幫幫我。

+0

請向我們展示您更改列表的代碼 – Janusz 2010-07-06 07:09:06

回答

2

我使用靜態的ArrayList從外部

修改數據,請不要這麼做。

步驟#1:使用非靜態的ArrayList數據成員作爲您的ArrayAdapter的基礎。

步驟#2:在您的活動上公開方法,通過ArrayAdapter上的add()insert()remove()方法添加和刪除項目。通過使用這些方法,當您進行更改時,您的ListView將自動更新。步驟#3:使用您在步驟#2中編寫的方法修改您的ListView的內容,無論這樣做的人(未在代碼中顯示)都可以修改ListView的內容。

0

您也可以使用Adapter的notifyDataSetChanged()方法,以強制刷新它。

相關問題