gpt4 book ai didi

java - 修改来自另一个类 Android 的实例中的变量

转载 作者:行者123 更新时间:2023-11-30 00:01:00 25 4
gpt4 key购买 nike

为简洁起见,我对此进行了简化;希望这个例子实际上不起作用。我正在创建一个变量并对其进行处理,然后我让另一个类执行一些操作,然后该类返回原始类并告诉它使用该变量执行更多操作。

我已经用 View 完成了这个。我只是传递 Activity ,然后当我需要使用它时,我使用 activity.findViewById(id) 来做事。使用变量,您不能只执行 activity.variable。我尝试使用 setter/getter (如本例所示),但也许我仍然做错了或者无法按照我想要的方式完成:

public class MyActivity {

private int test;

public void onCreate(Bundle savedInstanceState) {
test = 5;
int data = 100;
//Pass something to it
new NotAnActivity().func(MyActivity.this,data);
}

public int gettest() {
return test;
}

public void func(Activity instance, int response) {
int test = new MyActivity().gettest();
//Do stuff with test
}
}

public class NotAnActivity {

public void func(Activity instance, int data) {
//Do stuff with data
int response = 20;
//Try to pass information back
new MyActivity().func(instance,response);
}
}

最佳答案

您不能使用 activity.gettest(),因为您要在类之间传递父类(super class) Activity。要访问 gettest() 方法,您需要传递特定的子 Activity (MyActivity extends Activity,传递 MyActivity 而不是 Activity) 或者您可以转换为您的特定 Activity 。

((MyActivity)activity).getter(); 

所以在这里,而不是:

public void func(Activity instance, int data) {
//Do stuff with data
int test = ((MyActivity)instance).gettest();
}

public void func(MyActivity instance, int data) {
//Do stuff with data
int test = instance.gettest();
}

自己new A()

实例化你的 Activity 不是一个好主意

关于java - 修改来自另一个类 Android 的实例中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49910925/

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