我创建了一个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因为没有共享。
如何将方法内的数据共享到整个类?
谢谢!
答案 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]