2011-04-15 25 views
1

例1 - 例2、単純なJavaの問題

public class MainScreen extends Activity implements OnClickListener { 

    public void onClick(View v) { 
     Button touchedButton = (Button) v; 

     Test (MainScreen.this, touchedButton.getId()); 
     } 

    public void Test (MainScreen mainscreen, int touchedButton) { 

    if (touchedButton == R.id.serviceButton) 
    startService(new Intent(mainscreen, SimpleService.class)); 

    if (touchedButton == R.id.cancelButton) 
    stopService(new Intent(mainscreen, SimpleService.class)); 
} 
} 

に動作します -

public class MainScreen extends Activity implements OnClickListener { 

    public void onClick(View v) { 
     Button touchedButton = (Button) v; 

     Secondary.Test (MainScreen.this, touchedButton.getId()); 
      } 
} 


public class Secondary extends Activity { 


public void Test (MainScreen mainscreen, int touchedButton) { 

    if (touchedButton == R.id.serviceButton) 
    startService(new Intent(mainscreen,SimpleService.class)); 

    if (touchedButton == R.id.cancelButton) 
    stopService(new Intent(mainscreen,SimpleService.class)); 
     } 
} 

動作しないのはなぜ例2が動作しませんか?

+5

が –

+4

あなたはそれがコンパイルされないことを意味するか、またはそれが実行されるとき、それは間違ったことをしていることを「動作しない」の定義 –

+3

どのように "動作しません"。何が起こると予想され、実際に何が起こっていますか?コンパイル時または実行時にエラーが発生しますか? – sverre

答えて

4

あなたはこのラインで静的非静的メソッドを呼び出すようにしようとしている:あなたはSecondaryのインスタンスを作成するなどの静的メソッドであることをインスタンスまたは変更Secondary.Test()Test()を呼び出す必要が

Secondary.Test (MainScreen.this, touchedButton.getId()); 

この:?

public static void Test (MainScreen mainscreen, int touchedButton) { 
+0

私は実際にインスタンスを作成したが動作しません。私は私が行った質問を書いています。 – EliFromToronto

+0

@EliFromToronto 'Activity'を拡張したクラスのインスタンスを作成することはできません。あなたはまだそれが "うまくいかない"とは言いませんでした。 –

+0

私は問題が "mainscreen"にあると思うが、私はそれを修正する方法を知らない。 – EliFromToronto

関連する問題