使用 onclick 或 ID 执行方法?
Execute method using onclick or ID?
保持简短,这更利于在使用按钮时管理 android 单击事件?
将其分配给 XML 构造行中的 ID?
android:id="@+id/ButtonEventName"
并通过 Java 检测按下事件来使用它?
取自 android 工作室的登录 activity 模板:
Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
mEmailSignInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
attemptLogin();
}
});
或将按钮分配给 onclick 方法:
android:onClick="EventName"
整合 Java 方:
public void EventName(){}
在处理按钮事件时,哪个更有效、更可靠,值得推荐?
点 1 -
在代码中创建它允许您通过将方法设为私有来屏蔽方法访问,而以 xml 方式进行会导致方法暴露。
点 2 - android:onClick 适用于 API 4 级以上,所以如果你的目标是 < 1.6,那么你不能使用它.
否则据我了解,这2个是相似的。
这完全取决于您,但请记住,如果您在将作为 Fragment
的一部分膨胀的 xml 中定义 android:onClick="EventName"
并且您尝试在 Fragment
本身上接收按钮按下。 onClick
属性 仅搜索 Activities
您指定的方法名称。
我建议您查看 ButterKnife
这两种方法各有利弊。不知道哪个更有效
使用 id + onClickListener
是更复杂的代码,但它让您有机会进行 运行-时间检查错误。在您的示例中,这意味着额外的 null
检查。
第二种方法更容易阅读,但是如果你没有EventName
方法应用程序会崩溃
我更喜欢第二个,因为它更简单,而且总是更容易遵循逻辑并用更少的代码发现错误。
我还必须补充一点,虽然第一个解决方案确实提供了避免应用程序崩溃的方法,但最后这并不重要,因为如果 findViewById
returns null
你基本上有相同的错误,与布局不匹配的代码 xml
并添加 null
检查(在最终工作的应用程序中应该是多余的)只会另外污染代码。
保持简短,这更利于在使用按钮时管理 android 单击事件?
将其分配给 XML 构造行中的 ID?
android:id="@+id/ButtonEventName"
并通过 Java 检测按下事件来使用它? 取自 android 工作室的登录 activity 模板:
Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
mEmailSignInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
attemptLogin();
}
});
或将按钮分配给 onclick 方法:
android:onClick="EventName"
整合 Java 方:
public void EventName(){}
在处理按钮事件时,哪个更有效、更可靠,值得推荐?
点 1 - 在代码中创建它允许您通过将方法设为私有来屏蔽方法访问,而以 xml 方式进行会导致方法暴露。
点 2 - android:onClick 适用于 API 4 级以上,所以如果你的目标是 < 1.6,那么你不能使用它.
否则据我了解,这2个是相似的。
这完全取决于您,但请记住,如果您在将作为 Fragment
的一部分膨胀的 xml 中定义 android:onClick="EventName"
并且您尝试在 Fragment
本身上接收按钮按下。 onClick
属性 仅搜索 Activities
您指定的方法名称。
我建议您查看 ButterKnife
这两种方法各有利弊。不知道哪个更有效
使用 id +
onClickListener
是更复杂的代码,但它让您有机会进行 运行-时间检查错误。在您的示例中,这意味着额外的null
检查。第二种方法更容易阅读,但是如果你没有
EventName
方法应用程序会崩溃
我更喜欢第二个,因为它更简单,而且总是更容易遵循逻辑并用更少的代码发现错误。
我还必须补充一点,虽然第一个解决方案确实提供了避免应用程序崩溃的方法,但最后这并不重要,因为如果 findViewById
returns null
你基本上有相同的错误,与布局不匹配的代码 xml
并添加 null
检查(在最终工作的应用程序中应该是多余的)只会另外污染代码。