【问题标题】:Why is the ArrayAdapter doesn't have the set method like arraylist do?为什么 ArrayAdapter 没有像 arraylist 这样的 set 方法呢?
【发布时间】:2011-07-28 11:08:36
【问题描述】:

好吧,我的字符串数组适配器似乎有些麻烦。似乎没有真正的方法可以只修改列表中的项目。我必须删除并重新插入字符串才能看到更改出现。所以我的问题是为什么 ArrayAdapter 没有像 arraylist 这样的 set 方法呢?为什么它没有任何简单的方法来更改列表中的元素?为了更改元素,可以选择基于 BaseAdapter 创建自定义适配器?

【问题讨论】:

    标签: android listview


    【解决方案1】:

    让我们看看这个示例代码:

    ArrayList<String> items = new ArrayList<String>();
    
    MyAdapter myAdapter = new MyAdapter(items, context);
    

    您可以使用以下方法修改项目:

    // items.set(index,object);

    items.set(0,"Hello New Value");
    
    myadapter.notifyDataSetChanged();// to tell the adapter there's new values has been changed
    

    【讨论】:

    • 我将不得不尝试,但我想我已经尝试过了。它不起作用,我认为您需要重新设置适配器,因为它不知道您更改了列表。它似乎没有保留参考。当您重新设置适配器时,它会删除任何不是我不幸结果的选择。
    • 记住在你的getView中的Adapter,总是在null检查之外设置值,就像if(converView==null){//do somthing}在它设置值之后。
    • 我不完全明白你的意思。我从未尝试过制作自己的适配器,但您不能在适配器内制作套装吗?这样的 adapter.setItem(position, string) ?我有一种很好的感觉,如果我想修改里面的一个项目,我将不得不创建自己的适配器。我只想知道那是否是“是”。你有什么好的例子吗?
    • 你有一个实现 BaseAdapter 的例子吗?希望显示一个字符串列表,我们可以在其中使用 set 方法实际修改字符串?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多