如何修改Android中的ListView项?

时间:2015-02-14 00:23:40

标签: android listview adapter

我开始学习Android了,我想知道Android中是否有一些选项允许你修改每个项目或视图(我不知道它是如何命名的,我的意思是来自ArrayList的每个项目你在ListView中显示。)

好吧,我创建了一个ListView,它将显示一些位于名为“books”的ArrayList中的书籍。

我创建了一个与ListView关联的自定义适配器,以在应用程序中显示具有相应布局的每个项目。我还为ListView中显示的每个项目都有一个类“book”。

此外,我创建了一个Intent,我使用startForActivityResult()从MainActivity调用,我在Book类中处理,并使用方法setResult返回MainActivity所有数据,并使用onActivityResult()获取信息requestCode。

所以我没有任何问题将项目添加到ListView,只是我有问题,如果我想修改位于ListView中的一些项目(或视图)(例如,如果我有标题和一本书的作者,如果我提供了一些错误的信息,我希望可以选择更改它。)

我有,在你单击ListView的某些项目的同一时刻,将显示一个新的布局来修改它错误的信息,所以我在自定义适配器上使用方法setOnItemClickListener和onItemClick事件我以前创建过。在这里,我调用新的Intent来使用方法startActivityForResult()修改错误的信息。

我和以前一样添加了一个新项目,但是,我想知道是否有一些选项来制作这样的东西,而不是使用custom_adapter.addBook(title,author)添加新项目:custom_adapter.modify(标题,作者)或者custom_adapter.update(标题,作者),我的意思是,当您修改了书中所有错误的项目(例如,作为“标题”的EditText)并且您拥有MainActivity中的所有信息时class(因为你用setResult返回它),如何将它再次放在同一个项目中,在custom_adapter中以及在ArrayList中更新它。

我在互联网上搜索过但我没找到任何东西。

如果我的英语不好,我很抱歉,但我希望能够理解。

非常感谢!

3 个答案:

答案 0 :(得分:1)

互联网上有一些很好的代码示例,但您必须了解用于您的目的的代码。所以......这是一个开始,看看Using an ArrayAdapter with ListView。该代码显示了使用ArrayAdapter和getView()方法。我希望它能说明如何定义你需要的听众。

一开始怎么样?玩得开心......

答案 1 :(得分:1)

如果我正确理解您的问题,您只需修改支持ArrayList的{​​{1}}类型的Book即可。

因此,如果您知道要修改的ArrayAdapter对象,则只需对Book对象本身进行更改即可。只要此Book是您最初添加到Book的同一对象的引用,您实例化了ArrayList,然后您可以调用ArrayAdapter告诉适配器使用新数据重绘其子视图。

答案 2 :(得分:0)

非常感谢你给我的所有帮助。我很高兴你。 :)

最后,当我启动Intent时,我只是使用Bundle发送信息,也是该位置。之后,我只是使用这个位置将新信息设置为我的项目(在我的例子中,书籍)。

再次,非常感谢你;)