获取actionlistener中的activity对象

时间:2013-12-19 11:00:46

标签: android

有没有办法获取包含动作侦听器对象的活动指针?

代码段:

public class ActivityAsContainer exteneds Activity{
    public static ActivityAsContainer _brokeTheAbstractBarier;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        _brokeTheAbstractBarier = this;
        setContentView(R.layout.SomeBigLie);
        final Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            brokeTheAbstractBarier.dance;
        }
    }
}

是否有更好的方法将活动传递给动作侦听器,然后使用静态全局,如果对象被创建两次可能会破坏,并且视图可以创建两次并仍然存在?

3 个答案:

答案 0 :(得分:2)

只需使用

ActivityAsContainer.this

e.g

button.setOnClickListener(new View.OnClickListener() {
    ActivityAsContainer.this.dance;
}

答案 1 :(得分:1)

它不应该是静态的。

您可以在OnCreate中使用此定义,然后在侦听器中使用myActivity

final Activity myActivity=this;

答案 2 :(得分:1)

希望您在使用此行后能够解决

  _brokeTheAbstractBarier = YoursMainActivity.this;

而不是

 _brokeTheAbstractBarier = this;

或者您可以使用

ActivityAsContainer.this

  button.setOnClickListener(new View.OnClickListener() {
    ActivityAsContainer.this.dance;
}