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
中内存泄漏的第一个来源。更糟糕的是,从类外引用它…那么我如何将活动作为参数传递?