Java 这些名字在arraylist中消失了,如何让它们留在原处?

Java 这些名字在arraylist中消失了,如何让它们留在原处?,java,android,android-studio,arraylist,Java,Android,Android Studio,Arraylist,问题是名称是单独设置的Arraylist,但是当我保存它们时,它们会消失,如图所示 private ArrayList pinNames=new ArrayList(); int i=0; 如果(i

问题是名称是单独设置的Arraylist,但是当我保存它们时,它们会消失,如图所示

private ArrayList pinNames=new ArrayList();
int i=0;
如果(i
要遍历列表,请使用
foreach
-循环:

private ArrayList pinNames=new ArrayList();
用于(字符串pinName:pinNames)
{
if(pinName!=null)
{
画布.drawText(“+pinName,vX,vY,paint);
}
}

我不确定是否使用此解决方案,但我认为您应该尝试以下方法:

private ArrayList<String> pinNames = new ArrayList<String>();
int i = 0;

while (i < pinNames.size() && pinNames.get(i) != null ){
String p = pinNames.get(i);
canvas.drawText("" + p, vX, vY, paint);
i++;
}
private ArrayList pinNames=new ArrayList();
int i=0;
而(i

试试这个,告诉我它是否有效。

根据您对我的另一个答案的评论,这里是另一个尝试:

private ArrayList pinNames=new ArrayList();
private ArrayList sPin=new ArrayList();
//断言pinNames.size()==sPin.size()
对于(int i=0;i
您没有在列表上循环。您只需处理列表中的第一项。我想你需要一个
for
循环,而不是
if
语句。在这样的循环中,我得到了每个循环的名字,你在
vX
vY
中使用了哪些值(PointF point:sPin){if(point!=null&&pinBitmap!=null){PointF vPin=sourceToViewCoord(point);float vX=vPin.x-(pinBitmap.getWidth()/2);float vY=vPin.y-pinBitmap.getHeight();}如果没有上下文,很难回答。例如什么是
sPin
?试着在你问题的代码中加入一些上下文。private ArrayList sPin=new ArrayList();谢谢,但不起作用:(对不起,兄弟:(同样的问题,vX和vY-负责引脚定位对不起,我发现了一个错误:将
PointF vPin=sourceToViewCoord(point);
更改为
PointF vPin=sourceToViewCoord(pinPosition);
有帮助吗?