在外部类方法Android中引用字符串参数

时间:2015-07-10 06:19:19

标签: android

我从我的活动中调用了外部类的一些函数,我想提供参数的参考,以便我可以获得更新的值。

我正在调用这样的函数:

我的活动:

String var1;
ArrayList<String> var2;

OuterClass outerClass = new Outerclass();
outerClass.someMethod(var1, var2);

我的外部类功能:

public void someMethod(String var1,ArrayList<String> var2) {
// after some operations 
var1 = "somevale1";
var2 also have some value;

我需要访问我的活动中的两个更新值,而不需要任何仅来自引用的return语句。但在这里我收到错误variable accessed from within inner class needs to be declare final,但我无法宣布最终结果。

我应该怎样做才能像TextView和EditText一样提供参考?

4 个答案:

答案 0 :(得分:0)

我认为你可以宣布为全局变量并使它们成为最终变量。

final String var1;
final Arraylist<String> var2;

答案 1 :(得分:0)

试试这个, 获取一个bean类,并将其放入var1,var2中,然后在out类方法中更新,并将更新后的值反映到该bean对象中。

class CustomBean{
    String var1;
    ArrayList<String> var2;
}

OuterClass outerClass = new Outerclass();
outerClass.someMethod(Bean bean);

public void someMethod(String var1,ArrayList<String> var2) {
  // after some operations 
  bean.var1 = "somevale1";
  bean.var2 also have some value;
}

答案 2 :(得分:0)

您不能以这种方式更新值,因为您传递给方法只是引用存储日期的位置。我建议改变你的方法的签名,所以它返回:

return new Pair<String, ArrayList<String>> (var1, var2);

克里希纳的回答也是正确的,但我认为这种架构并没有真正需要。

答案 3 :(得分:0)

也许有人想这样。 someMethod的签名发生了变化。

class xxx: UITabBarController {
override func viewDidLoad() {
        super.viewDidLoad()
}