将数组从A类传递给B类

时间:2012-01-05 05:17:40

标签: java android

我在A类中有一个名为Floors的数组,它包含如下值:

  List<Point> manualpoint = new ArrayList<Point>();
  int[] manualpointx = {135,200,300,155,235,300};

假设我希望将这些值传递给B类,假设B类已经声明了超类View

public class DrawView extends View implements OnTouchListener { 
    @Override
    public void onDraw(Canvas canvas) {
        //pass the values into this class
    }

}

如何将值从A类传递给B?

4 个答案:

答案 0 :(得分:2)

在活动之间传递数据

//to pass array use
intent.putExtra("intarray", manualpointx);
// to pass list of point use
intent.putParcelableArrayListExtra("bundle", (ArrayList<? extends Parcelable>) manualpoint);

对于课程

  

创建公共getter方法以返回值并调用它们   您想要获取值的任何类的方法

答案 1 :(得分:1)

你可以这样做。

final class A
{
     private static int[] manualpointx = {135,200,300,155,235,300};
     private static List<Point> manualpoint = new ArrayList<Point>();

     public static int[] returnArray()
     {
          return(manualpointx);   
     }

     public static List<Point> returnList()         
     {
          return(manualpoint);
     }

}
public class DrawView extends View implements OnTouchListener
{ 
    @Override
    public void onDraw(Canvas canvas) 
    {
         //pass the values into this class
         int arr[]=A.returnArray();
         List<Point> list=A.returnList();
    }
}

如果您只需要班级A中的非静态字段,并且您只想使用非静态方法,则必须通过您的班级A的实例访问它们班DrawView

答案 2 :(得分:0)

您需要创建A类实例,然后访问B类中的值,例如:

public class ClassA {
  private int someInt;

  public ClassA() {
    someInt = 5;
  }

  public int getSomeInt() {
    return someInt;
  }
}

public class ClassB {
  public void someMethod() {
    ClassA instanceOfClassA = new ClassA();

    int someIntFromClassA = instanceOfClassA.getSomeInt();  //This is now 5;

    // Rest of your code here
  }
}

或者,您可以在ClassA中将其创建为静态方法,然后使用ClassB

ClassA.getSomeInt();中调用它

答案 3 :(得分:0)

另一个想法是,尝试在B中使用公共类,如果可能的话,使用A的Array值调用B的set Array方法。现在在set Array中我们可以有一个类变量来保存Array值,然后调用draw

public class DrawView extends View implements OnTouchListener {
    int[] manualpointx;
    setArray(int[] manualpointx1){
        this.manualpointx = manualpointx1
    }
     public void onDraw(Canvas canvas) { 
        //pass the values into this class 
        we can use manualpointx 
    }
}