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

uは「onClick」関数でarray[20]を使用できます

于 2012-11-13T02:00:24.410 に答える