我在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?
答案 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
}
}