我在动作抽屉里有一个Spinner,有点像谷歌玩的方式,但出于某种原因我去了一个嵌套片段的片段(这是一个显示其他片段的SlidingTabs片段)在Spinner改变第三次之后,应用程序不会向我发送微调更改事件。
因为我的时间很短,所以我将微调器从ActionDrawer移动到ActionBar,这更糟糕,因为如果我在一个带有嵌套片段的页面上,它将永远不会发送事件。
当显示nonNested片段时,这两种解决方案都能正常工作吗?我能错过什么?此应用正在使用Google提供的最新ActionBar / ActionDrawer支持。此外,此Spinner的侦听器位于Activity中,并在显示嵌套片段之前建立。
微调器的一些代码(system.outs停止在嵌套片段页面上显示):
mActionDrawerSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
System.out.println("---->>>onItemSelected" + !mIsDrawerLocked);
try {
Integer previousSelect = (Integer) parent.getTag(TAG_DODGE_ITEM_SELECTEDBUG);
//for some reason when the Drawer is revealed the first time it emits this event...
if (previousSelect == null) {
parent.setTag(TAG_DODGE_ITEM_SELECTEDBUG, position);
System.out.println("---->>>onItemSelected early");
return;
}
parent.setTag(TAG_DODGE_ITEM_SELECTEDBUG, position);
handleProxyChanged((PatientAdapterItem) parent.getItemAtPosition(position), false);
mActivitydata.mSelectedProxyIdx = position;
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("onItemSelected---->>>");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});