是否必须创建内部类来处理DataBinding中的事件



我学习了DataBinding,特别是关于处理事件和单击事件的部分。现在,我在YouTube上的一些教程中注意到,我的导师主要使用内部课堂来处理这些事件。然而,早些时候,我编写了实现View.OnClickListener的代码,并直接允许我处理点击事件。

这是:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private ActivityMainBinding activityMainBinding;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
activityMainBinding.enterButton.setOnClickListener(this);
}

@Override
public void onClick(View view) {
if (view == activityMainBinding.enterButton) {
String name = activityMainBinding.nameEditText.getText().toString();
String email = activityMainBinding.emailEditText.getText().toString();
String country = activityMainBinding.countryEditText.getText().toString();

User user = new User(name, email, country);
activityMainBinding.setUser(user);
}
}
}

这是有效的。

我想知道,这种处理点击事件的形式是否被认为不是一种好的做法?我查看了更多的教程,它们都使用了内部类,因此引起了这种怀疑。

谢谢你的帮助。

Q:有必要创建内部类吗?

A:不,绝对不是。这只是一个有用的约定:(

问:这种处理点击事件的形式。。。一个好的做法?

A:一般来说,任何个人;类";应该做";一件事";。类的属性及其方法应该与类的"匹配;抽象";。

例如;汽车;类可能应该而不是具有一个";onClick(("方法即使您的";汽车;类实现可能具有";按钮";,用一个";onClick(("方法

或者你的";汽车;可能有一打不同的按钮。在这种情况下,我肯定更喜欢看到十几个匿名内部类,每个按钮一个。它会更短;它会更干净。

然而,在你的例子中,我看不出有任何问题。看起来不错:(

最新更新