其它类(非MainActivity的内部类)怎么去调用MainActivity中定义的方法(非静态方法)?
这个其它类不是从Activity继承而来,所以想通过MainActivity类(继承自Activity类,所以有一些方法可以直接使用,因为它遵守ANDROID下的一些框架)的方法来做一些事情。像发广播消息什么的。
MainActivity类在开始就被ONCREATE( )了,所以应该已经实例化了,但在其它类中怎么引用?怎么去getInstance把MainActivity的实例得到???!!!
在其它类直接MainActivity.this.xxx( )这样引用不行,报下面的错误:No enclosing instance of the type MainActivity is accessible in scope.
其它类直接写成MainActivity的内部类就没这样的问题,想不明白!!!

解决方案 »

  1.   

    只能是MainActivity的内部类了。
      

  2.   


    觉得还有一种方法就是通过消息机制来完成。其它类发一个消息给 MainActivity ,让它去处理!!!
      

  3.   

    传递一个MainActivity的对象给这个类
      

  4.   

    可以回答你最后一个问题:
    --------------
    在其它类直接MainActivity.this.xxx( )这样引用不行,报下面的错误:
    No enclosing instance of the type MainActivity is accessible in scope.
    其它类直接写成MainActivity的内部类就没这样的问题,想不明白!!!
    --------------一个普通内部类(非static的)拥有它的外围类的所有成员的访问权限,也可以引用外围类的对象:外围类的名称.this
      

  5.   

    传对象:public class MainActivity extends Activity
    {
       ……
       public void anotherClass()
       {
          AnotherClass activity = new AnotherClass(this);
       }
    }public class AnotherClass
    {
        private MainActivity activity;
        public AnotherClass(MainActivity activity)
        {
           this.activity = activity;
        }
    }
    传接口:public interface IActivity
    {
        // 与Activity里同名同参数的方法声明
    }public class MainActivity extends Activity implements IActivity
    {
       ……
       public void anotherClass()
       {
          AnotherClass activity = new AnotherClass(this);
       }
    }public class AnotherClass
    {
        private IActivity iActivity;
        public AnotherClass(IActivity iActivity)
        {
           this.iActivity = iActivity;
        }
    }