2010-07-06 81 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()方法,以强制刷新它。

相关问题