的ArrayList<>得到清单

时间:2016-04-12 15:28:44

标签: java android arraylist

嗨在下面的代码中,我有LocationManager currentLongcurrentLatvars。点击按钮,我将varLat1VarLong1添加到a​​rraylist坐标。我如何使用Log.d获取数组的值。 marcCoordinates.size()为我提供了正确的尺寸,marcCoordinates.get(s)给了我gpsplotter.MainActivity$Coordinates@42204f70帮助谢谢

public class MainActivity extends AppCompatActivity implements  LocationListener {

public class Coordinates {
public final double latitudeX;
public final double longitudeY;
public Coordinates(double lat, double lon) {
    latitudeX = lat;
    longitudeY = lon;}}

...

 ArrayList<Coordinates> marcCoordinates = new ArrayList<>();

...

button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
    varLat1 = (currentLat);
    varLong1 = (currentLong);
marcCoordinates.add(new Coordinates(varLat1, varLong1));

...

int s =   marcCoordinates.size();
Log.d("log2",""+ marcCoordinates.get(s) + "" +    marcCoordinates.size());

3 个答案:

答案 0 :(得分:1)

Coordinates没有toString方法,因此使用了Object的默认值,这只是名称+内存地址。

如果您想要更好的表示,请覆盖toString方法:

public class Coordinates {
    ...
    @Override
    public String toString() {
        // return some string here.
    }
}

答案 1 :(得分:0)

您需要覆盖班级toString()中的Coordinates方法...

将解决问题。

实施例

@Override
public String toString() {
    return "Coordinates [latitude=" + latitude + ", longitud=" + longitud + "]";
}

答案 2 :(得分:0)

您必须覆盖您班级的toString()方法。否则将调用Object.classtoString(),它不知道您要公开哪些属性并将返回ClassName@HashCode

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    } 

要解决此问题,只需在您的班级中覆盖toString

public class Coordinates {
//...
@Override
    public String toString() {
         return "Coordinates [latitude=" + latitude + ", longitud=" + longitud   + "]";
    }
}