Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止将项添加到ArrayList(Android)_Java_Android_Arraylist - Fatal编程技术网

Java 如何防止将项添加到ArrayList(Android)

Java 如何防止将项添加到ArrayList(Android),java,android,arraylist,Java,Android,Arraylist,所以我有一个按钮,当我点击时,它会向我的ArrayList添加一个新对象 private List<Object> addObject = new ArrayList<>(); 这是它应该工作的,然后是我的ArrayList并连接到适配器…Yada Yada Yada 在我的代码中的某个时刻,object将是true。如何防止添加到ArrayList,因为它是最后一个 我试着做一个循环 for (int i = 1; i < addObject.size(); i

所以我有一个按钮,当我点击时,它会向我的ArrayList添加一个新对象

private List<Object> addObject = new ArrayList<>();
这是它应该工作的,然后是我的ArrayList并连接到适配器…Yada Yada Yada

在我的代码中的某个时刻,object将是true。如何防止添加到ArrayList,因为它是最后一个

我试着做一个循环

for (int i = 1; i < addObject.size(); i++ {
    Object newboject = addObject.get(i);

       if(newobject.getIsLast)){

       //Then i kinda need to stop adding to the list on further clicks. 
       }
}
for(int i=1;i

我认为问题可能在于我的代码的结构,非常感谢您的帮助……

最好是查看您的整个代码以显示正确的位置,但Kevin的flag解决方案可能如下所示:

private boolean isAtEnd = false;

if (object.getIsLast()) {
    isAtEnd = true;
}

if (!isAtEnd) {
    addobject.add(object);
}
公共类测试环扩展活动
{
布尔值IslastBj=false;
按钮添加;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.testring);
add=(按钮)findViewById(R.id.btnAdd);
add.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图)
{
如果(!isLastObj)
{
对于(int i=1;i

}

您可以从已包含所有项目(以及最后一个)的列表中创建一个固定大小的列表,并将其作为以下内容传递给适配器:

List<Object> finalObjectList = Arrays.asList(addObject);
List finalObjectList=Arrays.asList(addObject);
请注意,将元素添加到此列表将抛出
java.lang.UnsupportedOperationException
逻辑(仅适用于有序集合):选中列表中最后一个元素的“isLast”字段

if(addObject.size() > 0 && !addObject.get(addObject.size()).getIsLast()){
    Object object = new object;
    object.setTitle("stuff");
    object.isLast = false;
    addObject.add(object);
}

虽然解决方案有点笨拙,但它是一个包含的逻辑,不依赖于外部标志。

设置标志变量并在添加前检查该变量?另外,我强烈建议不要给你的类命名
Object
。。这就是我使用的对象。。。但是你能带我穿过设置旗帜吗@KevineSche您正在添加一个
对象
,然后检查是否应该添加它?
List<Object> finalObjectList = Arrays.asList(addObject);
if(addObject.size() > 0 && !addObject.get(addObject.size()).getIsLast()){
    Object object = new object;
    object.setTitle("stuff");
    object.isLast = false;
    addObject.add(object);
}