在Activity中输入两个值,网格的行数row和列数col(通过EditText控件输入的) 。然后在MyView.java中绘制这个网格,想问下有人知道怎么把row跟col的值传到MyView.java中MyView.java
public class MyView extends View {
int span = 32;
int row, col;
    int[][] mapDate;
Paint paint = new Paint();
    
public MyView(Context context) {
super(context);
}

public MyView(Context context, AttributeSet attrs) {//构造器
super(context, attrs);
}

@Override
protected void onDraw(Canvas canvas) {
    
paint.setColor(Color.GREEN);//设置颜色
for(int i=0; i<row+1; i++)
{
canvas.drawLine(0, span*i, span*col, span*i, paint);
}
for(int j=0; j<col+1; j++)
{
canvas.drawLine( span*j, 0, span*j, span*row, paint);
}
        super.onDraw(canvas);
}
}

解决方案 »

  1.   


     最好设置setXXX()方法 ;1、 在xml定义的话 ,获得该对象的引用  myView  = ()findViewById(R.id.xxx);
              myView.setXXX();2、在代码里构造View对象时,例如:myView = new myView();
             myView.setXXX();  在onCreate() 或者 onResume()里设置方法都可以 。
      

  2.   

    通过构造函数传值,
    public MyView(Context context,int row,int col) {
        
        super(context);
        this.row=row;
        this.col=col;
     }
     
      

  3.   

    通过构造函数传值,
    public MyView(Context context,int row,int col) {
        
      super(context);
      this.row=row;
      this.col=col;
     }
    然后在Activity里怎么调用呢
      

  4.   

    请问二楼在Activity里怎样调用这个构造函数的呢?
      

  5.   


    mView = new MyView(this,10,10);
      

  6.   

    [Quote=引用 5 楼  的回复:]
    引用 4 楼 的回复:请问二楼在Activity里怎样调用这个构造函数的呢?
    mView = new MyView(this,10,10);
    这个试过了,没用哎!
      

  7.   


           不需要将值通过构造函数赋值啊,直接在xml里通过这个方法myView = ()findViewById(R.id.xxx);获得引用,在赋值啊。 
      

  8.   

    [引用 7 楼  的回复:]
      不需要将值通过构造函数赋值啊,直接在xml里通过这个方法myView = ()findView…… mView = (MyView)findViewById(R.id.mView);这样子做没出现没能引用成功,出不来图啊~望再指点