Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对方法的编程调用与用户通过UI发起的调用-当应用程序必须知道两者的区别时,如何处理两者?_Java_Android_Callback - Fatal编程技术网

Java 对方法的编程调用与用户通过UI发起的调用-当应用程序必须知道两者的区别时,如何处理两者?

Java 对方法的编程调用与用户通过UI发起的调用-当应用程序必须知道两者的区别时,如何处理两者?,java,android,callback,Java,Android,Callback,我有两个微调器,微调器A和微调器B。当用户更改A时,B将使用一组全新的数据进行更新。我还为B实现了一个回调,以使用setOnItemSelectedListener,这样每当用户更改B时,我就可以修改另一个类中的某些对象 B.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int posit

我有两个微调器,微调器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();     
    }
});
B.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
mComponentColor.setSelection(位置);
MCompColorAsbuilded[mComponent.getComponentSelection()]=位置;
setColor();
}
});
我遇到的问题是,我真的不想更改这些对象,除非是用户更改了微调器。因为我根据A的选择自动填充B,所以当用户更改A时,会调用B的回调


有没有想过如何处理这种情况?

我基本上使用了与上面提到的flags方法类似的方法来解决这个问题,但是在调用onClickListener方法时调整的对象中解决了这个问题

基本上,通过记住微调器的最后一个状态,我会在调整其中的任何对象之前进行检查。如果状态相同,则不会更改任何内容。幸运的是,所有的对象调整都是由另一个类完成的,这使得它相对容易处理。我对它不太满意,但我认为它最终比在activity类中使用标志要好


多亏了这些贡献。

我最终基本上使用了与上面提到的flags方法类似的方法来解决这个问题,但是在调用onClickListener方法时调整的对象内部解决了这个问题

基本上,通过记住微调器的最后一个状态,我会在调整其中的任何对象之前进行检查。如果状态相同,则不会更改任何内容。幸运的是,所有的对象调整都是由另一个类完成的,这使得它相对容易处理。我对它不太满意,但我认为它最终比在activity类中使用标志要好


感谢那些做出贡献的人。

读这篇文章,可能会有所帮助:谢谢,但这将是我最后的选择。一定有更好的方法。创建包装器,让应用程序调用一种方法,用户调用另一种方法?与布尔标志非常相似,但有机会记录此设计决策。我自己我不喜欢整个想法:)我过去也用过旗子。我知道你的意思,那不是最好的解决办法。我用来避免收到不必要的通知的另一种方法是在适当的时间注册和注销侦听器。有趣的想法。谢谢各位。我将思考一下这些问题。读这篇文章,可能会有所帮助:谢谢,但这将是我最后的选择。一定有更好的方法。创建包装器,让应用程序调用一种方法,用户调用另一种方法?与布尔标志非常相似,但有机会记录此设计决策。我自己我不喜欢整个想法:)我过去也用过旗子。我知道你的意思,那不是最好的解决办法。我用来避免收到不必要的通知的另一种方法是在适当的时间注册和注销侦听器。有趣的想法。谢谢各位。我将思考一下这些问题。