2

これは奇妙です。誰かがこれを手伝ってくれるかもしれません。2 つのクラスがあり、メイン クラスから変数にアクセスしようとすると、値は常に 0.0 になります。

MAIN CLASS

public class MainActivity extends Activity {
  public float angleCurrent;
  - do something whith angleCurrent
  //System.out.println(angleCurrent);    - I get right values
}

SECOND CLASS

public class SecondClass extends ImageView {
  public float curAngle = new MainActivity().angleCurrent;
  //System.out.println(curAngle);   - I get 0.0 all the time
}

コードは単なる図です。

4

2 に答える 2

1

ここには、いくつかの大きな問題があります。まず、動作が発生している理由:

MainActivity内の最初のインスタンスから変数にアクセスしていませんSecondClass。新しい 2 番目のインスタンスを作成したMainActivityため、元の変数とは異なる変数にアクセスしています。

さて、2 番目の問題は、Android でこれを行う正しい方法を取り囲んでいます。Activityインスタンスを直接インスタンス化しないでください。また、フレームワークがすでに行っている以上に Activity への参照を渡すこともお勧めできません。Activity が customImageViewに情報を渡す必要がある場合は、Activity が値を転送するために使用できるメソッドを作成する必要がありますImageView(つまりSecondClass.setCurrentAngle(angleCurrent)) 。

于 2012-11-14T17:24:24.150 に答える
0

アクティビティ内の変数にアクセスするためにビューを探している場合、それは機能しません。カスタム ビューに setMethod を追加し、アクティビティから値を設定する必要があります。値が得られない理由について Chthlu は正しいですnew。画面に表示されているものとは異なるインスタンスを作成します。newActivity クラスを呼び出さないでください。アクティビティのコンストラクターさえ持つべきではありませんonCreate。メソッドですべてをセットアップする必要があります。

于 2012-11-14T17:23:42.313 に答える