gpt4 book ai didi

java - java/android中将两个组件附加到同一个事件如何区分每个组件

转载 作者:行者123 更新时间:2023-12-01 23:41:48 25 4
gpt4 key购买 nike

自学 PHP,现在学习 java 和 javascript。

在 java/android 中,向不同的组件添加相同的事件监听器是一种好的做法吗?如何判断正在使用哪个组件?

//set up view components
listTitleET = (EditText) findViewById(R.id.listTitleEditText);
finishDateET = (EditText) findViewById(R.id.finishDateEditText);

startDateET.setOnFocusChangeListener(v);
finishDateET.setOnFocusChangeListener(v);

View.OnFocusChangeListener v = new View.OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
/*************
* Do something here
* But how does one know which event is in use ..?

}
};

提前致谢

最佳答案

我总是喜欢为每个组件都有一个单独的事件监听器,或者创建一个扩展事件监听器的类并为每个组件都有一个单独的实例。我认为它更干净、更容易维护,因为它避免了长 switchif...else if 语句。因此,您可以做一些不同的事情:创建 View.OnFocusChangedListener 的两个不同实例,例如 v1v2 并使用

startDateET.setOnFocusChangeListener(v1);        
finishDateET.setOnFocusChangeListener(v2);

其中重写的方法具有与每个 View 相对应的适当代码。

或者您可以在每个 EditText View 上设置一个 id 或标记,然后添加一些逻辑,例如

if(v.getId.equals(...))
...
else if (v.getId().equals(...))
...

在重写的方法内。正如您所看到的,如果您选择稍后编辑代码,您可能必须理清这样长的 if/switch 语句。

关于java - java/android中将两个组件附加到同一个事件如何区分每个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17794311/

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