1

メインアクティビティクラスと検索クラスがあります。検索クラスから「名前」であるメインアクティビティ変数の変数にアクセスする必要があります。以下のスニペットコードでアクセスしようとしましたが、エラーが発生します。別のクラスからメイン アクティビティ変数にアクセスするにはどうすればよいですか?

public class main extends Activity {

     public static String name=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button1=(Button)findViewById(R.id.button1);

        final EditText edittext = (EditText) findViewById(R.id.editText1);

        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                name=edittext.getText().toString();

            }
        });                                                
}

私の2番目のクラス....

public class find {

public void finder(){

    main mainactivity=new main();
    String incoming_name =mainactivity.name;//I can not use like that ? 
            // do something 
}

}

4

2 に答える 2

8

1)アクティビティをインスタンス化するべきではなく、インテントがアクティビティを開始します

2)変数を宣言したpublic staticので、(クラスをインスタンス化せずに)単純に参照できますmain.name...

于 2012-05-13T03:36:10.237 に答える
4

Activityの変数に別の (外部) クラスから直接アクセスしたくありません。結局のところ、アクティビティは UI の一部であり、アプリケーションのバックエンドではないため、これは悪い習慣です。

nameまた、あなたの例では、プロパティはstatic特定のインスタンスに属しておらず、属していないことに注意してください。

于 2012-05-13T01:08:18.930 に答える