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