如何传递对当前活动的引用

Ale*_*rta 1 java android

我试图将当前活动的引用传递给对象,但似乎无法找到一个可以轻松完成此操作的方法.以前我能够通过当前上下文的"this"引用来做这个简单的传递.然后我将我的活动从实现OnClickListener改为创建OnClickListener对象,以便我可以将其作为参数传递.这是当我在单击按钮后尝试创建对象时遇到麻烦,这意味着我不能再使用"this"传递活动,因为"this"现在是OnClickListener的引用.

public class MyActivity extends Activity {
    private Object mObject;

    private OnClickListener mListener = new OnClickListener() {
        public void onClick(View v) {
            Object mObject = new Object(this);
        }
    }
}

public class Object {
    private Activity mActivity;
    public Object(Activity a) {
        mActivity = a;
        mActivity.setContentView(R.layout.layout);
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来像一个简单的修复,但我找不到答案......

任何帮助是极大的赞赏.

rog*_*rkk 5

你是对的,this现在引用了OnClickListener它,因为它引用了当前的类,你正在一个匿名类中工作.您可以通过传递引用外部活动mActivity.this:

Object mObject = new Object(mActivity.this);
Run Code Online (Sandbox Code Playgroud)

顺便说一句:我想我会重命名mActivity该类,因为正常的类命名约定是以大写字母开头.