Приложение будет работать нормально, если я не добавлю следующий код.
public class TFView extends View{
private Paint p;
private ArrayList<Orb> O1;
/** Called when the activity is first created. */
public TFView (Context context){
super(context);
O1=new ArrayList<Orb>();
p = new Paint();
int Orby=0;
for(int j=0; j<3; j++){
int Orbx= 0;
for(int i=0; i<4; i++)
{
O1.add(new Orb(Orbx,Orby,true));
Orbx+= 40;
}
Orby+= 40;
}
}
@Override
protected void onDraw(Canvas canvas) {
for(Orb t:O1){
canvas.drawOval(t.drawOrb(), p);
}
p.setColor(Color.BLUE);
canvas.drawText(String.valueOf(main.getx()), 50, 50, p);
canvas.drawText(String.valueOf(main.gety()), 50, 80, p);
canvas.drawText(String.valueOf(O1.size()), 50, 110, p);
try {
Thread.sleep(30);
} catch (InterruptedException e) { }
invalidate();
}
}
Итак, я считаю, что моя проблема как-то связана с тем, что андроид не принимает мой Arraylist. Я запустил очень похожий код для этого на своем компьютере, но что-то в Android, похоже, не хочет его принимать. Вот мой класс Orb, который используется в моем Arraylist.
import android.graphics.RectF;
public class Orb {
static int orbx;
static int orby;
public int size;
static RectF button;
boolean display;
public Orb(){
orbx=0;
orby=0;
display=false;
}
public Orb(int x, int y, boolean d){
orbx=x;
orby=y;
display=true;
}
public RectF drawOrb(){
button.set(orbx, orby,orbx+30, orby+30);
return button;
}
}
Итак, почему андроид не принимает мои рисунки Arraylist? Спасибо за помощь.
Редактировать: Итак, я исправил проблему с нулевой кнопкой со следующим кодом
public RectF drawOrb () {
button.set(orbx, orby,orbx+30, orby+30);
if(button!=null)
return button;
else
return b;
}
Теперь я получаю несколько исключений нулевого указателя, которые выглядят следующим образом
[2011-04-23 22:31:25 - ddms]null
java.lang.NullPointerException
at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:574)
at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)
Еще раз спасибо