2

私は OnItemSelectedListener クラスを持っていますが、spinner1 から項目を選択すると、表示されるはずのトースター テキストが表示されないという問題があります。トースト テキストは、リスナーが機能するかどうかを確認するためだけに存在します。2 つのスピナーがあり、個々の変数に対して両方のスピナーから選択した項目を取得しようとしています。ここで何か助けていただければ幸いです。私はこれで数時間立ち往生しています。

ボタンリスナーでその切り替え手法を使用しましたが、正常に機能しましたが、それらはメインクラスであるアクティビティクラスにあり、それに依存しているかどうか、および依存している場合の修正方法がわかりません

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

    View v = parent.getSelectedView();
    switch (view.getId()) {

    case R.id.spinner1:
        Toast.makeText( parent.getContext(),
                "Selected item is " + parent.getItemAtPosition(pos).toString(),
                Toast.LENGTH_LONG).show();
        break;
    case R.id.spinner2:
        //Code here
        break;
    default:
        Toast.makeText(parent.getContext(), view.toString(), Toast.LENGTH_LONG).show();
        break;
    }
}
4

1 に答える 1

9

「親」はスピナーを含むアクティビティであり、「ビュー」はスピナーであると考えているようです。彼らは実際にはそうではありません。「親」は ListView または SpinnerView です。「view」は個々のリスト項目です。

だから、あなたは使いたいと思うでしょう

switch (parent.getId())

選択したアイテムを含むスピナーの ID を確認します。

于 2012-05-06T23:58:52.380 に答える