私は外部DBに従って1つ以上のスピナーを動的に作成する必要があるアクティビティを持っています。動的に作成されたいくつかのスピナーにsetOnItemSelectedListenerを設定する方法
このスピナーアイテムのSOmeは、スピナーが持つ価値に応じたダイアログを表示する必要があります。たとえば、スピナーには次のオプションがあります。 -Own -Rental -Family House ユーザーがレンタルを選択すると、1か月にどれくらい支払うかを尋ねるダイアログ(または何か)を表示する必要があります。彼が自分や家族を選ぶなら、何も起こらないはずです。問題は、私はこれを行う際に「setOnItemSelectedListenerは」唯一の最後のスピナーのため設定されることである
for(int q=0;q<=parent.getChildCount();q++){
View v = parent.getChildAt(q);
if (v instanceof Spinner) {
Spinner res = (Spinner) v;
res.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//Here its supposed to show dialog if the option is "RENT"
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
}
}
:このようなものを使用して
私はスピナーでレイアウトを作成した後、edittextsなどイムレイアウト。
私は何をしようとすることができますか?私は他に何をするべきかわかりません。
同じことが起こっています。最後のスピナーにのみ適用されます。 –
私はちょうどいくつかのテストコードを書いており、それは私の最後に働いているようです。いくつかの質問は、クリックリスナーが登録していないという問題ですか?それとも、データがスピナーに正しく設定されていないのでしょうか?または、他の何か? – Silmarilos
こんにちは、お返事ありがとうございます。問題は、クリックリスナーは最後のスピナーにのみ適用されることです。私は5-6スピナーを持っていることを意味します。リスナーは6番目のスピナーにのみ適用されます。リスナーはそのスピナーでのみ動作します。たとえば、リスナーがアイテムを印刷する場合は、最後のスピナーアイテムのみが印刷されます。 –