这是本人的源代码,为什么执行到红色循环的时候,ResolveData.broken_line_List中数据读不出来呢,ResolveData类与MapView类在同一个包中了
public class MapView extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new ResolveData();
setContentView(new Map(this));
}
class Map extends View{
public Map(Context context) {
super(context);
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int j = 0;
Paint paint=new Paint();
Style style=Style.FILL_AND_STROKE;
paint.setStyle(style);
paint.setColor(Color.BLUE);
float[] a = {100l, 50l,200l, 50l,10l, 20l, 10l,50l};
// for(int m = 0;m<2;m++)
// canvas.drawLine(a[j++], a[j++], a[j++], a[j++], paint);
for(int i = 0; i<ResolveData.broken_line_List.size();i++){
Broken_line broken = ResolveData.broken_line_List.get(i);
for(int kk = 0 ; kk<broken.broken_point_number;kk++){
canvas.drawLine(broken.broken_x[kk]+128,broken.broken_y[kk],broken.broken_x[kk+1]+725,broken.broken_y[kk+1],paint);
}
}
}
}
}
------解决方案--------------------
前面会定义new ResolveData(),但是没有返回对象。
后面直接调用ResolveData.broken_line_List.get(i);这样的数据接口
可能是由于你ResolveData没有对象,导致了问题。另外感觉你想要用单实例的模式来调用这个函数,可能ResolveData里面有一些设计问题,使得函数无法调用。
检查顺序:
1. ResolveData.broken_line_List.size(),看看返回值是多少。我估计是0.
2. 如果第一步返回值不是零,请检查ResolveData.broken_line_List.get(i),进入函数内被去检查一下。
如果能将代码再贴上是最好的。