我开始学习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中更新它。
我在互联网上搜索过但我没找到任何东西。如果我的英语不好,我很抱歉,但我希望能够理解。
非常感谢!
答案 0 :(得分:1)
互联网上有一些很好的代码示例,但您必须了解用于您的目的的代码。所以......这是一个开始,看看Using an ArrayAdapter with ListView。该代码显示了使用ArrayAdapter和getView()方法。我希望它能说明如何定义你需要的听众。
一开始怎么样?玩得开心......
答案 1 :(得分:1)
如果我正确理解您的问题,您只需修改支持ArrayList
的{{1}}类型的Book
即可。
因此,如果您知道要修改的ArrayAdapter
对象,则只需对Book
对象本身进行更改即可。只要此Book
是您最初添加到Book
的同一对象的引用,您实例化了ArrayList
,然后您可以调用ArrayAdapter
告诉适配器使用新数据重绘其子视图。
答案 2 :(得分:0)
非常感谢你给我的所有帮助。我很高兴你。 :)
最后,当我启动Intent时,我只是使用Bundle发送信息,也是该位置。之后,我只是使用这个位置将新信息设置为我的项目(在我的例子中,书籍)。
再次,非常感谢你;)