2012-03-12 7 views
0

私はあるクラスの変数を設定する方法を見つけようとしています他のクラスでは変更の意図がありません。たぶん私は間違ったことを探しているかもしれません。おそらく私はこれを複雑にしています。私は分かりません。Android:変数を他のクラスから設定する

基本的に、現在選択しているlistViewアイテムを取得し、そのインデックス値をチェックし、その選択に基づいて変数を1つまたは2つ(別のクラスから)読み込んでいます。

public void onItemClick(AdapterView<?> parent, View v, int position, long id){ 
      theGame settings = null; 
      switch(position){ 
       case 0: 
        settings.baseWave = 10; 
        settings.baseRate = 5; 
        break; 
       case 1: 
        settings.baseWave = 20; 
        settings.baseRate = 10; 
        break; 
       case 2: 
        settings.baseWave = 30; 
        settings.baseRate = 15; 
        break; 
      } 
     } 

"theGame"は私の外部クラスであり、 "baseWave"と "baseRate"は対応するバリデータです。明らかに、私がここでやっていることは私のために働いていません。私はかなりこれのすべてで新しいので、優しい。

はそれがはるかに高く評価され、あなたが提供することができます任意の助けをありがとう:)

〜TG

+1

アプリケーションを拡張し、 'MyApp extends Application'を呼び出してそこに変数を格納します(またはそこで参照されるクラスに)。 – CamelCamelCamel

答えて

2

それはそれはあなたが悪いのデザインを持っていることが、あなたを打ったことをうれしいですが、それはまたあなたを襲っている必要がありますあなたはJavaを知らないので、あなたはJavaを知らないのでこの問題を抱えており、良いJavaの本はあなたを助けるだろうということです。

これは、あなたのこの試みを有効にする最短の道です.Gameに静的メンバーの参照を格納させます。コード内の静的メンバーを使用します。

class TheGame { 
    public static TheGame theGame = null; 
    TheGame() { 
    theGame = this; 
    } 
} 

、他の場所である:TheGame.theGame.baseWave = 10 * (position + 1);

それとも、それがこの方法を置く必要があるかもしれません:

public class TheGame extends Activity { 
    public static TheGame theGame = null; 

    @Override 
    public void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    theGame = this; 
    } 
} 

良いのJavaの本はあなたにこの種のものを記述しますあなたにそれの名前をつけて、それから離れてあなたに警告してください。

+0

ありがとう!これはまさに私が探していたものです。私はdeffです。良い本を買うことを探している(ほとんどの場合、私はたいていの場合、十分なJavaをスクラップするしかない)。あなたは何か推薦していますか?どうもありがとう! 〜TG –

関連する問題