2011-04-14 1 views
0

J'ai ces choses, dans une activité que j'ai définie un onTouchListener à mon ImageDraw, qui étend la classe ImageView, avec cet auditeur que j'effectue des actions comme zoom et panoramique avec des gestesAndroid - Création d'un écouteur de clic sur un bouton et un ImageView étendu sur la même activité

Mais dans cette activité j'ai un bouton à, mais quand un onClickListener le bouton j'obtiens i NullPointerException.

Sans définir onClickListener, tout fonctionne correctement.

Ma classe ImageDraw est:

public class ImageDraw extends ImageView{ 
private Paint mPaint = new Paint(); 
List<Point> pts = new ArrayList<Point>() ; 

public ImageDraw(Context context) { 
    super(context); 

} 
//used to send the location of the points to draw on the screen 
//must be called before every redraw to update the points on the screen 
public void SetPointsToDraw(List<Point> pts) 
{ 
    this.pts = pts; 
} 


public ImageDraw(Context context, AttributeSet attrs) 
{ 
    super(context,attrs); 
} 
public ImageDraw(Context context, AttributeSet attrs, int defStyle) 
{ 
    super(context, attrs, defStyle); 
} 

@Override 
public void onDraw(Canvas canvas) 
{ 
    super.onDraw(canvas); 

    Paint paintColor = mPaint; 
    paintColor.setColor(Color.YELLOW); 
    paintColor.setStrokeWidth(3); 


    if(pts.size() > 0) 
    { 
     canvas.drawCircle(pts.get(0).x, pts.get(0).y, 7, paintColor); 
    } 
    if (pts.size() > 1) 
    { 
     for (int i = 1 ; i < pts.size(); i++) { 
      paintColor.setColor(Color.YELLOW); 
      canvas.drawCircle(pts.get(i).x, pts.get(i).y, 7, paintColor); 
      paintColor.setColor(Color.RED); 
      canvas.drawLine(pts.get(i-1).x, pts.get(i-1).y, pts.get(i).x, pts.get(i).y, paintColor); 
     } 
    } 


} 

}

Modifié:

Ici, je mets le onClickListener au bouton, et son ici où te excpetion est un jet. Exactement sur le btnNew.SetOnTouchListener

 Button btnNew = (Button) findViewById(R.id.btnNew); 
    try 
    { 
    btnNew.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 

      Intent intent = new Intent(getApplicationContext(), NewWaypoint.class); 
      startActivity(intent); 
      return false; 
     } 
    }); 
    } 
    catch(Exception e) 
    { 
     String teste = e.toString(); 
    } 
+0

Pouvez-vous mettre le code qui donne une erreur - ' – JQCorreia

+0

Si elle est dans une mise en page, semble que votre mise en page ne peut pas être gonflé. besoin de plus d'informations sur l'endroit où vous définissez onClickListener sur le bouton – chaitanya

+0

Savez-vous d'où l'exception NullPointerException est levée? – shihpeng

Répondre

0

Ma meilleure estimation est en ce moment que vous ne définissez pas le point de vue du contenu de l'activité. pouvez-vous poster votre trace de pile et votre code d'activité?

0

J'ai rencontré la même question, mais j'ai trouvé que j'avais oublié setcontentView dans l'activité. Espérons que cela peut vous aider.

Questions connexes