相互に排他的な意味で互いに「結び付け」たい 2 つのスピナーがあります。一方のアイテムを選択すると、そのアイテムのテキストが赤くなり、上部に表示されます。最初の (「タイトル」) 選択 (以前に別の項目が選択されていた場合)、そのテキストは白に変わります。
これはすべて 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 リスナーを起動することは不可能だと言われました。これは技術的には正しいことだと私は認識していますが、この問題は比較的単純に思えます。また、目的の効果を得るには回避策が必要であると確信しています。
私が熟考しているものについて、いくつか質問があります。
- スピナー内のすべてのアイテムを未選択として設定し、そのうちの 1 つを表示する方法はありますか?
- と組み合わせて、おそらく一番上のアイテムで、別のタイプのイベント (つまり、「setOnTouchListener」、「setOnClickListener」など) を利用でき
onItemSelectedListener
ますか? - おそらく、スピナー自体で膨らませたビューで、別のタイプのイベントを単独で利用する必要があり
onItemSelectedListener
ますか? - 上記の箇条書きでほのめかされたものよりも優れた戦略を見つけるのを手伝ってもらえますか?