2012-03-12 7 views
1

たとえば、私はこのような方法があります。文字列 'tablenumber'が表示されたら、それをonclickボタンなどの後の関数で使用できるようにしたいので、その内容を別のアクティビティに送ることができます。しかし、この変数をメソッドの外で使用すると、認識されません。これについてどうやって行くのですか?メソッドの変数をグローバルにする方法は?

{ 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 

       String tablenumber = (String) arg0.getSelectedItem(); 

      } 

      public void onNothingSelected(AdapterView<?> arg0) { 
      } 
     }); 

答えて

3

あなたはどのようなプライベートと最終手段私に説明することができ、この

public class Xyz extends Activity { 



    String tablenumber; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.abc); 

} 
public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 

      tablenumber = (String) arg0.getSelectedItem(); 

     } 

} 
+0

プライベートとファイナルは何を意味するのか説明できますか? –

+0

@Ed Briscoe定数フィールドを宣言するには、finalキーワードを使用してその値を初期化します。 最終変数に値を1回だけ割り当てることができます。新しい 値を、既に値が割り当てられている最終変数に再割り当てしようとすると、 コンパイラエラーが発生します。 –

+0

プライベート変数とメソッドは、それらが定義されているクラス ファイルでのみアクセス可能です。サブクラスに対してもアクセスできません。 –

2

アクティビティクラスのフィールドにします。 eclipseを使用している場合は、ローカル変数を選択してCtrl/1またはCmd/1を使用し、「ローカル変数をフィールドに変換」を選択してください。

+0

のようなあなたの全体の活動のためにあなたの変数のグローバルのスコープを作ることができますか? –

+0

'final'修飾子は変数が決して変更されないことを意味するので、他のスレッドや匿名クラスのインスタンスでも安全に使用できます。 'private'は、変数が定義されているクラスでのみ使用できることを意味します。 – dldnh

+0

アクセスレベルに関する良いチュートリアルについては、[このページ](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)を参照してください。 – gobernador

2

グローバル変数を使用する必要があります。

{ 
     String tablenumber; 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 

      tablenumber = (String) arg0.getSelectedItem(); 

     } 

     public void onNothingSelected(AdapterView<?> arg0) { 
     } 
    }); 
関連する問題