我有两个微调器,微调器 A 和微调器 B。当用户更改 A 时,B 会更新为一组全新的数据。我还为 B 实现了一个使用 setOnItemSelectedListener 的回调,这样我就可以在用户更改 B 时修改另一个类中的一些对象。
B.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mComponentColor.setSelection(position);
mCompColorAsBuilt[mComponent.getComponentSelection()] = position;
setColor();
}
});
我遇到的问题是我真的不希望这些对象发生变化,除非用户是更改微调器的人。因为我会根据 A 的选择自动填充 B,所以当用户更改 A 时会调用 B 的回调。
有什么想法可以处理这种情况吗?
最佳答案
我基本上最终使用与上述标志方法类似的方法解决了这个问题,但它是在调用 onClickListener 方法时调整的对象内部完成的。
基本上,通过记住微调器的最后状态,我会在调整其中的任何对象之前进行检查。如果状态相同,则什么都不会改变。幸运的是,所有的对象调整都是由另一个类完成的,这使得它相对容易处理。我对此不太满意,但我认为它最终比在 Activity 类中使用标志要好。
感谢那些做出贡献的人。
关于java - 对方法的编程调用与用户通过 UI 发起的调用 - 当应用程序必须知道差异时如何处理这两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4331023/