gpt4 book ai didi

java - 如何使用setter和getter在android中的类之间传递数据

转载 作者:行者123 更新时间:2023-12-01 15:15:34 24 4
gpt4 key购买 nike

我正在编写一个具有两个类的程序,一个扩展 Activity,另一个扩展 SurfaceView。该 Activity 有一个 SurfaceView 类的对象。我试图使用 setter 和 getter 在这两个类之间发送数据,但每次我尝试时,eclipse 都会说设置和获取的方法需要是静态的。我不能这样做,因为我不希望它们是静态的。

Activity 类包含以下方法:

public float getxTouch(){
return xTouch;
}
public float getyTouch(){
return yTouch;
}

SufaceView 类包含以下代码:

xpos = ActivityClass.getxTouch();
ypos = ActivityClass.getyTouch();

如何在不使方法静态化的情况下解决此问题?

最佳答案

您可以使用 Intents 在 Activity 和类之间传输变量引用。

首先,让我们创建一个包含变量的可序列化类:

class XYTouch implements Serializable{
public static final String EXTRA = "com.your.package.XYTOUCH_EXTRA";

private float xTouch;

public void setX(String x) {
this.xTouch = x;
}

public String getX() {
return xTouch;
}

// do the same for yTouch
}

然后,在 Activity 的 onCreate 中,创建一个新的 XYTouch 对象,并使用 set 和 get 方法设置其 xTouch 和 yTouch 属性。然后写

Intent intent = new Intent(this, OtherClass.class);
intent.putExtra(XYTouch.EXTRA, xytouchobject);
startActivity(intent);

在您想要访问这些变量的其他类(OtherClass)中:

public void onCreate(Bundle savedInstance){
// ....
XYTouch xytouch = (XYTouch) getIntent().getSerializableExtra(XYTouch.EXTRA);
// ....
}

然后,您可以在类中的任何位置使用 XYTouch 的 get 和 set 方法来引用 xTouch 和 yTouch。

另一种方法是从您自己的类中检索它,该类扩展了 Application 并保留对这些变量的引用。然后您将使用 Activity 上下文来读取它们。

关于java - 如何使用setter和getter在android中的类之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com