从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
设置了onClick
:
<Button
android:id="@+id/btnOK"
android:onClick="btnOK_onClick"
android:text="@string/ok" />
如你所见,我必须通过一些箍来实现这个目标:
final
变量,使this
的{{1}}中有OnClickListener
,AlertDialog
。正如我所说,它运作良好,但它看起来并不漂亮。有没有办法做得更好?
答案 0 :(得分:1)
使用内部类中的classname.this
。因此,如果您的课程为MySuperClass
,则可以从实例内部类引用MySuperClass.this
。
您无需定义superClick
,因为您始终可以致电super.btnOK_onClick(view);
。
所有人都告诉你,你应该能够做MySuperClass.super.btnOK_onClick()