如何调用内部ListView的notifydatasetchanged方法?

3

我正在使用一个ListView嵌套在另一个ListView中,当我点击ListView上的一个按钮时,我需要向内部ListView中添加项目。如何调用内部ListView适配器的notifydatasetchanged方法。

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.homeinnernew1, parent, false);
            holder = new ViewHolder();
            holder.lv = (ListView)convertView.findViewById(R.id.listView1);
            holder.ed_Comment=(EditText) convertView.findViewById(R.id.edComment);
                        holder.btnSend=(Button) convertView.findViewById(R.id.btnSend);
            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();

        }
        ct=new ArrayList<Comment>();
        for(int j=0;j<listComment.size();j++){
            Comment objComment=listComment.get(j);                              
            ct.add(objComment);
        }
        myadapter = new CommentListAdapter(context,ct,a);
        holder.lv.setAdapter(n);

        holder.btnSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String text=edText.getText().toString();
                Comment objComment=new Comment("1", "2", "1", "sadsa,"text",sadsa") ;
                commentList.add(objComment);
                myadapter.notifyDataSetChanged();
}

}

1
发布你的代码,为什么不使用可扩展的listView? - Shayan Pourvatan
2
notifyDataSetChanged()属于适配器,因此您应该为两个不同的listview拥有2个单独的适配器,只需调用yourAdapter.notifyDataSetChanged()或yourOtherAdapter.notifyDataSetChanged()。顺便说一句,您真的不应该嵌套两个listview,这种情况下滚动是如何工作的呢? - Suau
不使用可扩展列表视图,这是否可能? - Divya
滚动效果很好,没有问题 - Divya
当您将ct发送到适配器之后,您向commentList添加了新对象,您希望myadapter.notifyDataSetChanged();如何为您工作?您需要更改ct还是发送到适配器类的任何对象。 - Shayan Pourvatan
1个回答

2

您需要通知两个适配器,以便外部适配器知道它需要刷新其视图。您甚至可能需要通知外部适配器其数据集已失效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接