スピナーが2つあります。そのうちの1つでアイテムを選択すると、選択したアイテム(現在は上部に表示されています)が赤に変わります。スピナーは相互に排他的な意味で相互に関連付けられています。一方で何かを選択すると、もう一方は最初の(「タイトル」)選択に戻り、白に変わります。
これはすべて、onItemSelectedリスナーを介して行われます。
sectionSpin.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long arg3) {
System.out.println("SECTION SPIN # " + position);
issueSpin.setSelection(0);
((TextView) issueSpin.getChildAt(0)).setTextColor(Color.parseColor("#FFFFFF"));
((TextView) arg1).setTextColor(Color.parseColor("#E3170D"));
....
「イシュースピナー」の場合はその逆です。私の問題は、あるスピナーから別のスピナーに移動し、一番上のアイテムを選択した場合、onItemSelectedListenerが登録されないことです(printlnステートメント(または、その欠如は、これを証明します)。 selectedはすでに選択されているので何も起こりません。
必要なのは、SwingのButtonGroupに相当するものです。この場合、一見異なる2つのメニューを作成できますが、一度に1つしか選択できないように、すべての子を1つの「相互に排他的な」ボタングループに追加します。このようなものを私に与えるAndroidのメカニズムはありますか、または誰かが回避策で私を助けることができますか?