当前位置: 代码迷 >> Android >> 关于用List的数据画线的有关问题
  详细解决方案

关于用List的数据画线的有关问题

热度:103   发布时间:2016-05-01 22:20:49.0
关于用List的数据画线的问题
这是本人的源代码,为什么执行到红色循环的时候,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),进入函数内被去检查一下。

如果能将代码再贴上是最好的。
  相关解决方案