2011-03-27 85 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静态或使用

三级栏目=新三级栏目()