Java 如何使用ArrayList?

Java 如何使用ArrayList?,java,android,for-loop,arraylist,Java,Android,For Loop,Arraylist,我对Android的一些基本知识有疑问我的问题是我不知道如何从ArrayList中填写值。目前,我有两个应用程序,一个应用程序通过intent发送信息,另一个应用程序接收信息 在第一个应用程序中,它将接收特定打印机错误的一些信息。我必须在其他应用程序中作为通知显示的所有信息。通知(第二个应用程序)我已经实现了它,它可以显示通知。通知由字符串类型携带,可以发送到第二个应用程序 我有一个方法叫做updateUI()。因为我必须为我的第一个应用程序不断更新接口和信息,所以我使用的是服务。因此,每隔几秒

我对Android的一些基本知识有疑问我的问题是我不知道如何从
ArrayList
中填写值。目前,我有两个应用程序,一个应用程序通过intent发送信息,另一个应用程序接收信息

在第一个应用程序中,它将接收特定打印机错误的一些信息。我必须在其他应用程序中作为通知显示的所有信息。通知(第二个应用程序)我已经实现了它,它可以显示通知。通知由
字符串
类型携带,可以发送到第二个应用程序

我有一个方法叫做
updateUI()
。因为我必须为我的第一个应用程序不断更新接口和信息,所以我使用的是服务。因此,每隔几秒钟就会调用一次
updateUI()

我有一个ArrayList,名为
error
。此列表将收集所有信息:

ArrayList<String> error;
现在我想从ArrayList填充这个字符串。在此之前,我声明了名为temp的临时字符串。此字符串将避免再次调用
updateUI()
时发送给通知应用程序的相同通知

for (int i = 0; i < error.size(); i++) {
    if (error.get(i) != null) {
        notification= error.get(i);
        if (notification.equals(temp)) {
            notification = null;
        } 
        else 
        {
            temp = notification;
        }
    }
}
如果arrayList包含一个元素,则可以正常工作。但是如果有2个事件发生,那么错误数组有2个元素,它将只显示第二个元素

例如: 在
错误中
有2个元素

error = {"Ink Black is empty","Ink Magenta is Empty",null,null};
当我们转到语句的

第一个索引:

for (int i = 0; i < error.size(); i++) {
            if (error.get(0) != null) {  ---------> Error.get[0] = "Ink Black..."
                notification= error.get(i); ---> notification = "Ink Black..."
                if (notification.equals(temp)) {
                    notification = null;
                } 
                else 
                {
                    temp = notification;---> temp= "Ink Black..."
                }
            }
        }
for (int i = 0; i < error.size(); i++) {
        if (error.get(1) != null) { --------> Error.get[1] = "Ink Magenta..."
            notification= error.get(1);----> notification = "Ink Magenta..."
            if (notification.equals(temp)) {---> "(Ink Magenta...".equals("Ink Black...")
                notification = null; 
            } 
            else 
            {
                temp = notification; ----->temp= "Ink Magenta..."
            }
        }
    }

有人知道如何解决我的问题吗?因此,我可以使用其他元素您尚未初始化您的ArrayList。所以,如果您试图处理一个对象,在不进行初始化的情况下,它将导致空指针异常

尝试初始化您的列表

error = new ArrayList<String>();

您需要检查arraylist的大小是否大于1,或者检查是否有错误。get(i)!=null

如果要确保添加到arraylist的项目的唯一性,请不要使用arraylist。使用(例如HashSet),因为Set是不包含重复元素的集合。


获取通知(即向设置对象添加项目)后,为每个项目调用
sendBroadcast(broadCastIntent)

初始化不是问题,请再次阅读问题。
for (int i = 0; i < error.size(); i++) {
        if (error.get(1) != null) { --------> Error.get[1] = "Ink Magenta..."
            notification= error.get(1);----> notification = "Ink Magenta..."
            if (notification.equals(temp)) {---> "(Ink Magenta...".equals("Ink Black...")
                notification = null; 
            } 
            else 
            {
                temp = notification; ----->temp= "Ink Magenta..."
            }
        }
    }
if (!error.get(0).isEmpty())
        {
            if (error.get(0).equals(temp))
            {
                if (!error.get(1).isEmpty() && !error.get(1).equals(tempA))
                {
                    notification = error.get(1);
                    tempA = error.get(1);
                }
                else
                {
                    notification= null;
                }
            }
            else
            {
                notification= error.get(0);
                temp = error.get(0);
            }
        }
        else
        {
            notification= null;
        }
error = new ArrayList<String>();
error.add("Ink Black is empty");
error.add("Ink Magenta is Empty");
if (!error.get(1).isEmpty() && !error.get(1).equals(tempA))