Java 为什么我的列表中有一个列表对象?
我正在创建一个列表来存储手机中存储的图像的最后位置,但当我检查输出时,我注意到每端都有两个方括号 代码如下:Java 为什么我的列表中有一个列表对象?,java,android,list,Java,Android,List,我正在创建一个列表来存储手机中存储的图像的最后位置,但当我检查输出时,我注意到每端都有两个方括号 代码如下: protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_photo); LatLngs = (TextView)findViewById(R.id.Lat
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo);
LatLngs = (TextView)findViewById(R.id.LatLngs);
List imagePaths = getCameraImages(this);
List realLatLngs = getLatLong(imagePaths);
LatLngs.setText(Arrays.toString(new List[]{realLatLngs}));
}
public List<String> getLatLong(List<String> paths) {
List<String> trueLatLongList = new ArrayList<>();
for(int i = 0; i< paths.size(); i++){
String imagePath = paths.get(i);
String trueLat = ReturnLat(imagePath);
String trueLng = ReturnLng(imagePath);
String trueLatLng = "(" + trueLat + ", " + trueLng + ")";
trueLatLongList.add(i, trueLatLng);
}
return trueLatLongList;
}
protectedvoid onCreate(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo);
LatLngs=(TextView)findViewById(R.id.LatLngs);
List ImagePath=getCameraImages(此);
List realLatLngs=getLatLong(imagepath);
setText(Arrays.toString(新列表[]{reallatlatlngs}));
}
公共列表getLatLong(列表路径){
List trueLatLongList=new ArrayList();
对于(int i=0;i
造成这种情况的原因是什么?是我在getLatLong()方法中创建的新列表吗?这是因为您正在将列表推到另一个列表中,请替换
LatLngs.setText(Arrays.toString(new List[]{realLatLngs}))使用LatLngs.setText(Arrays.toString(reallatlatlngs))代码>猜测:
LatLngs.setText(Arrays.toString(new List[]{realLatLngs}));
这是在创建一个新的列表[]
,其中只包含一个元素(列表realLatLngs
),然后在其上调用数组.toString
。因此,您正在对列表数组进行字符串化,这将正确地导致[…]]
试一试
替换LatLngs.setText(Arrays.toString(新列表[]{reallatlungs}))使用LatLngs.setText(Arrays.toString(reallatlatlngs))代码>我已经尝试过了,当我将鼠标悬停在那行的realLatLngs上时,它会说“无法解析方法:'toString(java.util.list)'”
LatLngs.setText(realLatLngs.toString());