2016-04-12 24 views
-2

Merhaba Aşağıdaki kodda ile currentLong ve currentLat, vars var. On (Açık) Düğmesinde arraylist Coordinates'e varLat1 ve VarLong1 ekliyorum. Nasıl Log.d kullanarak, dizinin değerlerini alırım. marcCoordinates.size() bana doğru boyutu verir ama marcCoordinates.get(s) bana [email protected] YARDIM TeşekkürArrayList <> listeyi al

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

... verir

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

cevap

0

Bu sorunu çözecek Coordinates ...

sınıfındaki toString() yöntemini geçersiz kılmanız gerekir.

Örnek:

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

Coordinates bir toString yöntemi, yani sadece isim + bellek adresidir Object biri kullanılır varsayılan sahip değildir. Daha iyi bir temsilini istiyorsanız

, toString yöntemi geçersiz:

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

daha iyi olur:

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

bu sadece sınıfta toString geçersiz düzeltmek için soruyu yinelenen yanıtlar oluşturmaktan daha çok kopyalamak için. – bcsb1001

0

Sen toString() yöntemini sınıf geçersiz kılmak gerekir. Aksi [email protected] sergilemek istediğiniz özellikleri bilmiyor ve dönecektir hangi Object.class ait toString() adı verilecek:

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

Sıralı :) Öngörmediğim başka bir sorunla karşılaştım. Bir operatörü şu şekilde uygulamak istiyorsam: double sum = marcCoordinates.get (0) + marcCoordinates.get (1); –

İlgili konular