【问题标题】:How to access instance variable and method in main activity from other activity? [duplicate]如何从其他活动访问主要活动中的实例变量和方法? [复制]
【发布时间】:2012-08-25 07:33:47
【问题描述】:

可能重复:
Android: How to declare global variables?

我想从其他活动访问主要活动中的公共实例变量。 我想在主要活动中调用公共方法。 我该怎么做?

class MainActivity extends Activity {
    public int i;
    public void myMethod() {}
}

class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // How can I access variable i in MainActivity?
        // And How can I call myMethod() in MainActivity?
    }
}

【问题讨论】:

    标签: android


    【解决方案1】:

    不建议这样做,因为您的活动类可能随时被系统回收。

    使用首选项来存储变量,或者更简单:创建您自己的应用程序类。这将在整个应用程序生命周期中可用,并且您将能够在其中存储静态变量。

    【讨论】:

      【解决方案2】:

      您可以在 Intent 中将其作为额外内容传递,然后您就可以开始新的 Activity

      【讨论】:

      • 我们也可以使用 Parcelables 来传递 Plain Class
      【解决方案3】:

      这可能会帮助您: How to declare global variables in Android?

      您可以使用 Application、SharedPreferences 或静态变量的子类。

      【讨论】:

        【解决方案4】:

        试试这个

        class MainActivity extends Activity {
            public int i;
        void startNewA()
        {
         Intent i = new Intent(getApplicationContext(), MyActivity.class);
         i.putExtra("var_name", i);
         startNewActivity(i);
        }
        }
        
        class MyActivity extends Activity {
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                int i = getIntent().getIntExtra("var_name", -1);
            }
        }
        

        【讨论】:

        • 这只是一个或两个变量共享的好处。但是,我有很多变数要分享。
        【解决方案5】:

        当您想在多个活动中获取和设置相同的变量时,您也可以使用首选项。

        【讨论】:

          猜你喜欢
          • 2011-08-26
          • 1970-01-01
          • 1970-01-01
          • 2021-08-19
          • 1970-01-01
          • 1970-01-01
          • 2013-07-30
          • 1970-01-01
          • 2017-03-20
          相关资源
          最近更新 更多