请考虑下面一段代码(顺便说一下,它工作得很好),它来自一个Activity
:
class ParentActivity extends Activity {
...
@Override
public void btnOK_onClick(final View view) {
// do stuff
}
}
class ChildActivity extends ParentActivity {
...
public void superClick(View view) {
super.btnOK_onClick(view);
}
@Override
public void btnOK_onClick(final View view) {
final BarcodePickActivity me = this;
if (confirmation_needed == true) {
new AlertDialog.Builder(this)
.setTitle(R.string.are_you_sure_)
.setMessage(R.string.are_you_sure_you_want_to_continue)
.setNegativeButton(R.string.no, null)
.setPositiveButton(R.string.yes, new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
me.superClick(view);
}
}).create().show();
} else {
super.btnOK_onClick(view);
}
}
}
在所使用的布局中,有一个
Button
集合:<Button
android:id="@+id/btnOK"
android:onClick="btnOK_onClick"
android:text="@string/ok" />
正如你所看到的,我必须跳出很多圈套才能让这个工作:
定义一个
onClick
变量,使final
在this
的OnClickListener
中可用,定义一个能够调用
AlertDialog
的额外方法。就像我说的,它工作得很好,但看起来不漂亮。有更好的办法吗?
最佳答案
使用内部类中的classname.this
。因此,如果类是MySuperClass
,则可以从实例内部类引用MySuperClass.this
。
没有必要定义superClick
,因为您可以随时调用super.btnOK_onClick(view);
。
总之,你应该能够做一些类似于MySuperClass.super.btnOK_onClick()