我原本以爲我在做什麼,把握好,但每當我覺得我有東西了良好的手感,我證明是錯誤的:)我如何從一個匿名類訪問我的主類?
有問題的代碼是這樣的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mButton = (Button)findViewById(R.id.m_button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
}
我的困惑是在new Intent()
和startActivity
方法。
我,只要我們在一個匿名類View.OnClickListener
容器內工作,我不得不做這樣 MainActivity.this.startActivity(intent);
的東西時,我不是匿名內部類的假設下,我可以簡單地不要 new Intent(this,SecondActivity.class);
有人能解釋爲什麼我能夠調用startActivity();
方法,但不能只用this
的意圖參數?
「但是允許內部類訪問外部類的變量和方法。」 所以這就是爲什麼我可以使用'startActivity'沒有OutClassName.this。對? –
是的。請參閱編輯。 :) –
非常感謝。 接受。 –