android 在ArrayList适配器区域外添加新项

lx0bsm1f  于 2023-01-24  发布在  Android
关注(0)|答案(1)|浏览(162)

因此,如果在其他公共void外部或内部调用.add,在ArrayAdapter-ArrayList上添加新项时会遇到问题。我使用的是xml文件内部的列表视图,并将其替换为ArrayList Adapter
这是我在onCreate之外的代码,就在AppCompatActivity下面:

List<String> recolis = new ArrayList<>();
    String [] startinglist = {};

这是我在onCreate里面的代码:

ArrayList<String> recolis = new ArrayList<String>(Arrays.asList(startinglist));
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, recolis);
        recolist.setAdapter(adapter);

所以我的问题是,每当我在onCreate之外或在另一个public void中调用一个新的recolis.add("new");时,假设我有一个switch case,它将调用一个新的public void“inmomacy();“Call new public void where it has the .add function
而里面的“失眠”();“我想向ArrayList添加一个新项,但问题是它甚至不会添加。This is a new public void
我试图找到任何相关的问题,但都不起作用。我只想在数组列表中添加一个新项到它的区域之外。
我真的真的很感谢你的帮助。谢谢!

2w2cym1i

2w2cym1i1#

在你的OnCreate函数中,你正在重新初始化你的reclis。另外,你是想输入recolist.setAdapter(adapter);?从你提供的代码看,这似乎就是你的意思,不管怎样,你应该做ArrayList<String> recolis = new ArrayList<String>(Arrays.asList(startinglist));,而不是recolis = new ArrayList<String>(Arrays.asList(startinglist));,这是因为当你做数组列表的recolis时,Java会把它当作“哦,好吧,这是一个新变量,任何有这个名字的东西都只是巧合”,这意味着,当你去实际更新recolis时,它不会用适配器更新你的recolis,而是你在AppCompatActivity下面提供的,这意味着当它“添加”到列表中时,它实际上并没有去任何地方。

相关问题