1、在另一个activity里,可以使用intent;
2、在一个普通的class里,怎么访问activity类里的非静态变量或方法。我是这样做的
例如:
newActivity= new BaseActivity();//BaseActivity继承自activity的类
scrennWidth=newActivity.getScreenWidth();
这样做出错了,怎么回事啊,有没有好的方法啊,我不想把getScreenWidth()设为静态方法
谢谢

解决方案 »

  1.   

    我是想调用这个activity里的非静态方法
      

  2.   

    通过构造函数将activity中的数据传递过去!!普通ab.class
    public class ab
    {
       String  str;
       ab(String str)
        {
             this.str=str;
        }
    activity中通过构造ab类对象传递数据过去
    ab c=new ab(string数据);
      

  3.   


    也可以通过构造函数将上下文传递过去!即 ab c=new ab(xxxActivity.this)
    在ab类中,
    通过这个上下文调用acitivity里面的方法
      

  4.   

    public class TestActivity extends Activity{  private A a;
      @Override
      public void onCreate(Bundle savedInstanceState) {
         a = new A(this);
      }  public void method(){
         System.out.println("可以调用我");
      }
    }
    public class A{
      private TestActivity mActivity;  public A(TestActivity context){
          mActivity = context;
          xx();
      }
       
      private void xx(){
          mActivity.method();
      }
    }
      

  5.   

    写到一个工具类里面
    或者写到一个Application子类里面
      

  6.   

    7楼回答很对, 跨activity传递数据,还是写一个application的子类,专门负责保存需要共享的状态,然后通过不同的activity来调用,调用的时候在activity里只需这样:SonOfApplication mSon = ((SonOfApplication)getApplicationContext());
    mSon.getter();
    这样的话传啥对象都ok。
      

  7.   

    楼主的困惑是如何获取activity对象中的数据吧,因为Activity的构建依赖于系统框架,我们通过
    startActivit方法交系统去创建了一个Activity,而不是原来我们新建一个Activity的方式去创建一个Activity了,因此我们没有办法直接获取一个Activity的引用了。
      

  8.   

    一个简单有效的办法就是使用单例模式,在Activity中提供一个静态方法获取这个Activity,然后你可以通过class获取这个activity对象:public class MainActivity extends Activity {
    private static MainActivity defaultActivity = null;
    public static MainActivity getDefault() {
    return defaultActivity;
    }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    defaultActivity = this;
    }
    @Override
    protected void onDestroy() {
    defaultActivity = null;
    }
      

  9.   

    你好 把 ItemizedOverlay 类 写入到 Activity的内部 就可以了!