相同的类(共享数据)

时间:2012-11-12 23:58:24

标签: android textview

我创建了一个AlertDialog(编辑文本),但后来我想把值插入数组:

void goToPage(){

    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Title");
    alert.setMessage("Message");
    final EditText input = new EditText(this);
    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        String value = input.getText().toString();
        int value2 = Integer.parseInt(value);
    // Do something with value!
    }
    });
    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
    // Canceled.
    }
    });
    alert.show();           
}

在同一个班级我有这个数组:

array[20]

在同一个班级中,我不能使用value2因为没有共享。

如何将方法内的数据共享到整个类?

谢谢!

2 个答案:

答案 0 :(得分:1)

通过将数据传递给全局范围的变量,您可以将方法中的数据共享到整个类。所以:

public class MyClass {
int num; //now this is global

//....everything else


}

确保您了解范围在Java中的工作原理。在方法和循环中时,范围会发生变化。但是,总是可以从类中的任何地方访问全局变量。在这种情况下,这条规则的例外情况很奇怪:

public class MyClass {
int num; //now this is global

    public MyClass(){
        num = 1;
    }
    public void access(int num) {
        num = 5;
    }
    public void printOut() {
        System.out.println(num);
    }

}

运行它:

MyClass something = new MyClass();
something.access(8);
something.printOut();

int的值仍为1,因为num的另一个实例(在access()中)是本地的,这意味着全局num不知道它存在。它们是不同的。这就是this关键字的用途。但是我没有进入它。你绝对可以做研究:))

答案 1 :(得分:0)

你可以在“onClick”功能中使用数组[20]