我有两个微调器,我想以互斥的方式相互“绑定”:如果您在其中选择一个项目,该项目的文本将变为红色并显示在顶部,而另一个则返回显示初始(“标题”)选择(如果之前选择了另一个项目),其文本变为白色。
这一切都是通过 onItemSelected 侦听器完成的:
sectionSpin.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long arg3) {
issueSpin.setSelection(0);
((TextView) issueSpin.getChildAt(0)).setTextColor(Color.parseColor("#FFFFFF"));
((TextView) arg1).setTextColor(Color.parseColor("#E3170D"));
....
对于“问题微调器”,反之亦然。我的问题是,如果我从一个微调器转到另一个并选择顶部项目,则 onItemSelectedListener 不会注册,因为正在选择的项目已被选中。
我被告知这是不可能的。或者,更确切地说,有人告诉我,onItemSelected 侦听器不可能在已选择的项目上触发。虽然我意识到这在技术上是正确的,但这个问题似乎相对简单,我确信必须有一种解决方法才能产生预期的效果。
关于我正在思考的一些问题,我有几个问题:
- 有没有办法将微调器中的所有项目设置为未选中,同时仍显示其中一个?
- 我可以使用不同类型的事件(即“setOnTouchListener”、“setOnClickListener”等),大概在顶部项目上,与
onItemSelectedListener
? - 我是否应该单独使用不同类型的事件,也许是在微调器本身膨胀的视图上,没有
onItemSelectedListener
? - 你能帮我找到比上面提到的那些更好的策略吗?