2016-04-12 18 views
-2

こんにちは私はLocationManagercurrentLongcurrentLat,varsを持っています。ボタンをクリックすると、私はvarLat1VarLong1をarraylist座標に追加します。どのようにして、Log.dを使って配列の値を取得しますか? marcCoordinates.size()は私に正しいサイズを与えますが、marcCoordinates.get(s)は私に[email protected] HELPのおかげArrayList <>リストを取得

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()); 

答えて

0

Coordinates ...

クラスのtoString()メソッドをオーバーライドして問題を解決する必要があります。

例:

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

CoordinatestoString方法、これだけの名前+メモリ・アドレスであるObjectのいずれかが使用されているデフォルトを持っていません。あなたがより良い表現をしたい場合は

toStringメソッドをオーバーライドします。

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

を重複した回答を作成するよりも重複して質問をマークしてください。 – bcsb1001

0

あなたはtoString()方法あなたのクラスをオーバーライドする必要があります。そうしないとあなたが公開したいと思いますどのプロパティを知らないと[email protected]を返します。これは、Object.classtoString()呼び出されます。

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

この問題を解決するには、ちょうどあなたのクラスでtoString上書き:それは良いでしょう

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

ソート済み:) 私が予見しなかった別の問題が発生しました。演算子を次のように適用したい場合:double sum = marcCoordinates.get(0)+ marcCoordinates.get(1); –

関連する問題