Android 如何将某个活动的上下文作为参数传递

Android 如何将某个活动的上下文作为参数传递,android,Android,我想知道如何将活动的上下文从ClassA.java发送到main addingitems.java 我可以将MainActivity.class作为参数传递,但无法传递上下文 下面是调用main addingItems 新的MainAddingItems(MainActivity.class,“单击MainActivity”,R.id.activity\u main\u linearLayout,“Profile Acitvity”)只需像在MainActivity中一样将上下文设置为静态 公共

我想知道如何将活动的上下文从
ClassA.java
发送到
main addingitems.java

我可以将
MainActivity.class
作为参数传递,但无法传递上下文

下面是调用
main addingItems


新的MainAddingItems(MainActivity.class,“单击MainActivity”,R.id.activity\u main\u linearLayout,“Profile Acitvity”)

只需像在MainActivity中一样将上下文设置为静态

公共静态语境

您可以像下面这样使用: MainActivity.Contextouse


请让我知道,如果它对您有帮助,它将起作用。请确保您将其取消为公共和静态,如下所示

公共静态语境; 在你的主要活动中


您可以在整个项目中的任何位置使用该上下文

您可以这样做。如果您的构造函数是:

MainAddingItems(Context context) {...}
然后,从
活动1
中,您只需执行以下操作:

Context context = Activity1.this; // Or getApplicationContext() or View.getContext() or whatever context you want


MainAddingItems(context);

实际上,您正在这里传递上下文。在android上下文中,是应用程序的当前状态。例如,如果您在活动中,那么上下文就是活动类本身,与服务和android的任何其他组件相同

再举一个例子,

只要试着在任何活动的
onCreate
方法中显示一条toast消息,考虑到您的活动名称是
SimpleActivity
,您可以这样写

Toast.makeText(this "Understating context",Toast.LENGTH_LONG).show();
或者你可以写下

Toast.makeText(SimpleActivity.this "Understating context",Toast.LENGTH_LONG).show();
第一个
makeText
方法是
context
,如果您只需传递该类,它就可以工作

这就是将活动作为参数传递的方式

public SimpleClass{
  AppCompatActivity mActivity;

  public SimpleClass(AppCompatActivity mActivity){
      this.mActivity = mActivity;
  }
}


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SimpleClass newSimpleClass = new SimpleClass(MainActivity.this);

    }
}

将MainAddingItem类的构造函数设置为

class MainAddingItem {
Context context;

MainAddingItem (Context context, rest of the parameters){
this.context = context;
}
}
使用上述构造函数并在构造函数的参数中传递活动的上下文

new MainAddingItem (this, rest of the parameters);

不,
context
不应存储在静态变量中,Android Studio将指出这一点。请查看下面的链接https://itekblog.com/Android-context-in-non-activity-class/可能重复的“请勿这样做”。众所周知,
static
上下文是
Android
中内存泄漏的第一个来源。更糟糕的是,从类外引用它…那么我如何将活动作为参数传递?