9

アダプターが動的に読み込まれるスピナーを使用しています。

  • 複数の項目がある場合、スピナーの動作は標準的なものです。クリックすると、ドロップダウンが表示され、ユーザーがアイテムを選択できるようになります
  • アイテムが1つしかない場合、ドロップダウンが表示されないようにし、クリックイベントをキャッチしてアクションを実行したい.

デフォルトの動作を防ぐための解決策が見つかりません (つまり、クリックで 1 つの項目のみのドロップダウンを表示する)。これを行う方法についてのアイデアはありますか?ありがとう

4

3 に答える 3

11

うーん...使用してみてsetClickable(fasle)ください。setEnabled(false)spinner

これを試して

public class SpinnerActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Spinner spinner = (Spinner) findViewById(R.id.spinner1);
        List<String> list = new ArrayList<String>();
        list.add("list 1");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);

        if (list.size() < 2) {
            spinner.setClickable(false);
            spinner.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_UP) {
                        Toast.makeText(SpinnerActivity.this, "Catch it!", Toast.LENGTH_SHORT).show();
                    }
                    return true;
                }
            });
        }


    }
}
于 2012-08-21T20:09:49.497 に答える