2011-03-27 84 views
0
public class MainClass extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Intent intent1 = new Intent(MainClass.this, SecondClass.class); 
     startActivity(intent1); 
    } 

//--------------------------------------------- 
public class SecondClass extends Activity { 
    ThirdClass thirdclass; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.keyboard); 

     thirdclass.Random_Method('A'); 
    } 

//--------------------------------------------- 
public class ThirdClass extends Activity { 
    public void Random_Method(char NewChar) { 

    } 
+0

有右括號丟失.. – poke 2011-03-27 20:42:02

+0

你得到一個堆棧跟蹤? – 2011-03-27 20:42:25

+0

他沒有發佈所有的代碼。關閉大括號不會編譯。他獲得一個FC。 – eternalmatt 2011-03-27 20:46:51

回答

0

ThirdClass thirdclass從未初始化。代碼更改爲

thirdclass = new ThirdClass(); 
thirdclass.Random_Method(‘A’); 

,或者,這樣做:

new ThirdClass().RandomMethod('A'); 

而且,三級欄目並不需要延長活動(它不應該,除非你能解釋一下爲什麼它需要)。

編輯:

如果它需要延長的活動,那麼你應該以同樣的方式被切換到三級欄目是MainClass開關,意圖以二等。或者重新考慮你的活動的工作方式,使這個TextView在SecondClass中發生。第二個將如下完成:

public class SecondClass extends Activity { 
    TextView textView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.keyboard); 
     textView = (TextView) findViewById(R.id.something); 
     random_Method('A'); 
    } 

    public void random_Method(char NewChar) { 

    } 
+0

我做了更改,但仍然失敗。 ThirdClass擴展了Activity,因爲Random_Method將一個字符串寫入TextView,並使用findViewById。 – EliFromToronto 2011-03-27 21:17:44

+0

然後,您應該切換到ThirdClass的方式與MainClass用意向切換到SecondClass的方式相同。或者重新考慮你的活動的工作方式,使這個TextView在SecondClass中發生。 – eternalmatt 2011-03-27 22:27:13

1

力我看到一對夫婦可能出現的問題:

  1. 三級欄目是按照上文你的代碼永遠不會實例。
  2. 你從另一個Activity調用一個Activity的函數。我認爲Android的生命週期並不可行。
0

ThirdClass尚未初始化。你要麼需要做Random_Method靜態或使用

三級欄目=新三級欄目()