gpt4 book ai didi

java - 将 Child 投给 Parent 好吗?

转载 作者:搜寻专家 更新时间:2023-11-01 08:49:26 24 4
gpt4 key购买 nike

我的 Android 项目中有以下代码:

// The OnTouchListener is used so we are able to trigger the OnItemClickListener of the ListView,
// even though an EditText or AutoCompleteTextView is focused
private OnTouchListener itemOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v instanceof EditText){
EditText et = (EditText)v;
et.setFocusable(true);
et.setFocusableInTouchMode(true);
}
else{
MyHolder h = (MyHolder) v.getTag();
h.etAmount.setFocusable(false);
h.etAmount.setFocusableInTouchMode(false);
h.actvName.setFocusable(false);
h.actvName.setFocusableInTouchMode(false);
}
return false;
}
};

View 可以是:

  • 编辑文本
  • AutoCompleteTextView
  • 一些其他的 View 元素

我已经调试了代码,因为 AutoCompleteTextView's parent是EditText,代码也在这个if里面。

所以我的问题是:在 AutoCompleteTextView 上使用 EditText et = (EditText)v; 来设置它的 setFocusablesetFocusableInTouchMode 是否安全?或者我应该将其更改为以下内容?

// The OnTouchListener is used so we are able to trigger the OnItemClickListener of the ListView,
// even though an EditText or AutoCompleteTextView is focused
private OnTouchListener itemOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// WARNING: Leave this if above the if else for EditText,
// since AutoCompleteTextView has EditText as parent
if(v instanceof AutoCompleteTextView){
AutoCompleteTextView actv = (AutoCompleteTextView)v;
actv.setFocusable(true);
actv.setFocusableInTouchMode(true);
}
else if(v instanceof EditText){
EditText et = (EditText)v;
et.setFocusable(true);
et.setFocusableInTouchMode(true);
}
else{
MyHolder h = (MyHolder) v.getTag();
h.etAmount.setFocusable(false);
h.etAmount.setFocusableInTouchMode(false);
h.actvName.setFocusable(false);
h.actvName.setFocusableInTouchMode(false);
}
return false;
}
};

最佳答案

是的。您可以将 Child 转换为 Parent,因为每个 Child 都是 Parent。这就是 OOP 的美妙之处。

关于java - 将 Child 投给 Parent 好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036021/

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