gpt4 book ai didi

java - 如何从 onClickListeners 调用成员函数

转载 作者:太空狗 更新时间:2023-10-29 14:13:18 26 4
gpt4 key购买 nike

考虑以下来自 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" />

如您所见,我必须克服很多障碍才能使其正常工作:

  1. 定义一个 final 变量,使 thisAlertDialogOnClickListener 中可用,
  2. 定义一个额外的方法来调用 super.btnOk_onClick

正如我所说,它工作正常,但看起来并不漂亮。有没有办法做得更好?

最佳答案

使用内部类中的classname.this。因此,如果您的类是 MySuperClass,您可以从实例内部类中引用 MySuperClass.this

没有理由需要定义 superClick,因为您总是可以调用 super.btnOK_onClick(view);

总而言之,您应该能够执行类似 MySuperClass.super.btnOK_onClick()

的操作

关于java - 如何从 onClickListeners 调用成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24932824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com