我想知道如何将活动的上下文从ClassA.java
发送到MainAddingItems.java
。
我可以传递MainActivity.class
作为参数,但我无法传递上下文。
以下是ClassA
调用MainAddingItems
new MainAddingItems(MainActivity.class,"MainActivity Clicked",R.id.activity_main_linearLayout,"Profile Acitvity")
答案 0 :(得分:0)
它会起作用..确保你将它作为公共和静态来解决它,如下面
公共静态上下文上下文; 在您的主要活动中
您可以使用整个项目中任何上下文的位置
答案 1 :(得分:0)
实际上你在这里传递上下文。在android上下文中是当前的应用程序状态。作为一个例子,如果你在一个活动中,那么上下文就是活动类本身,对于服务和android的任何其他组件都是一样的
让我举一个例子,
尝试在任何活动的onCreate
方法中显示祝酒消息,考虑到您的活动名称为SimpleActivity
,您可能会写这样的内容
Toast.makeText(this "Understating context",Toast.LENGTH_LONG).show();
或者你可以写下面的
Toast.makeText(SimpleActivity.this "Understating context",Toast.LENGTH_LONG).show();
第一个parameter of 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);
}
}
答案 2 :(得分:0)
将MainAddingItem类的构造函数设为此,
class MainAddingItem {
Context context;
MainAddingItem (Context context, rest of the parameters){
this.context = context;
}
}
使用上面的构造函数并在构造函数的参数中传递活动的上下文。
new MainAddingItem (this, rest of the parameters);
答案 3 :(得分:-1)
只需像在MainActivity中一样将Context设置为静态。
公共静态Context contextToUse;
你可以使用如下: MainActivity.contextToUse
如果对您有帮助,请告诉我