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

时间:2018-02-25 16:03:55

标签: android

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

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

以下是ClassA调用MainAddingItems

的构造函数的一些代码

new MainAddingItems(MainActivity.class,"MainActivity Clicked",R.id.activity_main_linearLayout,"Profile Acitvity")

4 个答案:

答案 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

如果对您有帮助,请告诉我