データベースから入力されたスピナーがあります。そのため、アイテムが入っていない状態でスピナーをクリックすると、リストアイテムが空のスピナーが表示されます。スピナーが空のときに表示されないようにし、トーストメッセージを表示したいと思います。アイテムの数をチェックしてトーストメッセージを表示するロジックがありますが、関数を呼び出す場所がわかりません。スピナーをクリックしてスピナーアイテムをロードすると、イベントは何と呼ばれますか?
5290 次
3 に答える
2
なぜ設定しないのonClickListener
ですか?
Spinner s = (Spinner)findViewById(R.id.myspinner);
s.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
checkForItemCount(); //where you show your Toast if it's empty.
}
});
編集: あなたの質問を完全にはカバーしていないと思うので、自分でコードを試しました。これは完全に機能します。
final Spinner s = (Spinner)findViewById(R.id.spinner1); // get reference
ArrayList<String> mList = new ArrayList<String>(); //some list without items
s.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mList));
s.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && mList.size() == 0) {
toast("Empty"); //lazy method for toasting
s.setPressed(false); //closes the spinner.
}
return true;
}
});
于 2012-12-05T14:28:55.973 に答える
1
Spinner
は のサブクラスでView
あるため、クリックしたときに呼び出される実装をView.setOnClickListener()
変更するために使用できます。が空かどうかを確認してから を表示するようにonClick()
オーバーライドできます。onClick()
Spinner
Toast
修正:
はできないsetOnClickListener
ため、この質問Spinner
で提案されている解決策を使用できます(内容は以下に貼り付けました)。
スピナーの OnClickListener を設定する代わりに、OnTouchListener と OnKeyListener を設定しています。
spinner.setOnTouchListener(Spinner_OnTouch);
spinner.setOnKeyListener(Spinner_OnKey);
そしてリスナー:
private View.OnTouchListener Spinner_OnTouch = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
doWhatYouWantHere();
}
return true;
}
};
private static View.OnKeyListener Spinner_OnKey = new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
doWhatYouWantHere();
return true;
} else {
return false;
}
}
};
于 2012-12-05T14:32:38.990 に答える
0
これは、それがあなたが求めていたものである場合、アイテムが選択されたときの機能です。さらにヘルプが必要な場合は、コードを投稿する必要があります。そうでなければ、あなたが何をしているのかわかりません
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
于 2012-12-05T14:29:05.837 に答える