0

我创建了一个 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 因为没有共享。

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

谢谢!

4

2 回答 2

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因为另一个实例(在 access() 中)num是本地的,这意味着全局num不知道它的存在。它们不一样。这就是this关键字的用途。但我不会参与其中。你绝对可以做研究:)

于 2012-11-13T00:03:49.700 回答
0

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

于 2012-11-13T02:00:24.410 回答