2015-03-09 3 views
-2
package com.csfv3.maps.views.overlays; 

import java.util.ArrayList; 

    import android.content.Context; 
    import android.content.Intent; 
    import android.graphics.Bitmap; 
    import android.graphics.Canvas; 
    import android.graphics.Color; 
    import android.graphics.Paint; 
    import android.graphics.Point; 
    import android.widget.Toast; 

    import com.csfv3.maps.tileManagement.TilesManager; 
    import com.csfv3.poi.POI; 

    public class POIOverlay extends MapOverlay 
    { 
protected Bitmap poiMarker; 
protected Paint bitmapPaint = new Paint(); 
protected Paint textPaint = new Paint(); 
protected ArrayList<POI> points = new ArrayList<POI>(); 
protected ArrayList<Point> absPoints = new ArrayList<Point>(); 

Context context; 

public POIOverlay(TilesManager tilesManager, Context context, Bitmap poiMarker) 
{ 
    super(tilesManager); 

    this.context = context; 
    this.poiMarker = poiMarker; 

    textPaint.setColor(Color.BLACK); 
    textPaint.setTextSize(30); 
} 

@Override 
protected void drawOverlay(Canvas canvas, int x, int y) 
{ 
    for (POI poi : points) 
    { 
     if (!poi.isVisible()) continue; 

     Point poiPos = tilesManager.lonLatToPixelXY(poi.getLongitude(), poi.getLatitude()); 
     int finalX = poiPos.x + x; 
     int finalY = poiPos.y + y; 

     canvas.drawBitmap(poiMarker, finalX - poiMarker.getWidth()/2, finalY - poiMarker.getHeight()/2, bitmapPaint); 
     // canvas.drawText(poi.getName(), finalX - poiMarker.getWidth()/2, 
     // finalY, textPaint); 
    } 
} 

public void addPoint(POI point) 
{ 
    if (point == null) return; 

    for (POI p : points) 
    { 
     if (p.getID() == point.getID()) return; 
    } 

    points.add(point); 
    absPoints.add(tilesManager.lonLatToPixelXY(point.getLongitude(), point.getLatitude())); 
} 

@Override 
public void onClick(double longitude, double latitude) 
{ 
    Intent myIntent = new Intent(POIOverlay.this, Infopoi.class); 

    POIOverlay.this.startActivity(myIntent); 
    POIOverlay.this.finish(); 

    Point abs = tilesManager.lonLatToPixelXY(longitude, latitude); 
    float r = poiMarker.getWidth()/2; 

    for (Point p : absPoints) 
    { 
     if (Math.abs(abs.x - p.x) <= r && Math.abs(abs.y - p.y) <= r) 
     { 

      int duration = 8; 
      Toast.makeText(context, points.get(absPoints.indexOf(p)).getIcon(),Toast.LENGTH_LONG).show(); 
      for (int i = 0; i < duration; i++) { 
       Toast.makeText(context, points.get(absPoints.indexOf(p)).getInfo(), Toast.LENGTH_LONG).show(); 





      } 
      return; 
     } 

    } 

} 


@Override 
public void onMapZoomChanged(int zoom) 
{ 
    absPoints.clear(); 
    for (POI p : points) 
    { 
     absPoints.add(tilesManager.lonLatToPixelXY(p.getLongitude(), p.getLatitude())); 
    } 

    super.onMapZoomChanged(zoom); 
} 
} 

Я использую намерение начать новую деятельность после «pubblic void on click», но ошибка отчета об андроид-студии и не запускать новую активность почему ??? Пожалуйста помоги !!! Все мои attemps являются failed..infopoi.class не загруженыНачинаете новый актив

Update ... 10/03/2015

Да я объявляю в манифесте ... но я не войти кошка becouse я есть подчеркнуть весь метод .. in android studio .. (POIOverlay.this, Infopoi.class) является подчеркнутым красным. Его сообщение об этой ошибке: невозможно разрешить конструктор Intent (com.cfsv3.maps, views.overlays.POiOverlay, java.lang.Class) 'In POIOverlay.this.startActivity (myIntent); startactivity является красным, а ошибка: не удается разрешить метод startActivity (android.content.Intent) 'также я пытаюсь добавить в public void onClick (двойная долгота, двойная широта) реализует OnClickListener. У меня ошибка в выполнении его отчета красным: Неожиданный токен в инструментах и ​​в OnClickListener говорит красным цветом. Не удается разрешить символ. Нужна помощь!

+0

Вы можете оставить сообщение об ошибке LogCat OnClickListener пожалуйста? Вы объявили свою активность в файле манифеста? – Bubu

+0

Опубликовать выходы LogCat –

+0

«HELLLPPP» не приведет вас никуда на этом сайте – JClassic

ответ

0

Вы не выполнили OnClickListener

implements OnClickListener 

, ни вы сделали вы устанавливаете

.setOnClickListener(this); 
+0

Я объявляю в манифесте ... (POIOverlay.this, Infopoi.class) является красной ошибкой подчеркивания: невозможно разрешить конструктор «Intent» (com.cfsv3.maps, views.overlays.POiOverlay, java.lang.Class) «В POIOverlay. this.startActivity (myIntent); startactivity является красным, а ошибка: не удается разрешить метод startActivity (android.content.Intent) 'также я пытаюсь добавить в public void onClick (двойная долгота, двойная широта) реализует OnClickListener. У меня ошибка в выполнении его отчета красным: Неожиданный токен в инструментах и ​​в OnClickListener говорит красным цветом. Не удается разрешить символ. Нужна помощь! – user3859817

Смежные вопросы