0

ボタンを押すだけでスピナーを動的に作成しようとしています。

これは私がしたことです:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.leave_balance);

spinner = new Spinner(this);
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, list);
    spinner.setAdapter(spinnerArrayAdapter);

Button  b = (Button)findviewbyid(R.id.button1);
b.setonclicklistener(new Onclicklistener){
   public void onClick(View v) {
            spinner.performClick();


        }
 spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            Toast.maketext(context,"selectedspinner",Toast.LENGTH_SHORT).show();

        }

        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
}
}

私の問題はそのトーストを取得できません。つまり、スピナーonitemselectedlistnerがトリガーされていません。

どんな提案でも大歓迎です..ありがとう

4

3 に答える 3

3

スピナーは、電話を受けるために親を追加する必要がありますonItemSelected

  1. XMLでスピナーを追加し、幅と高さを0dpに設定します(可視性が消えないように設定される場合があります)。

  2. を使用して取得しfindViewByIdます。

于 2012-06-27T10:36:53.893 に答える
2

spinner.performClick()は、onItemclicklistenerではなくonclicklistenerを呼び出します。

spinner.performitemclick(.....);を使用します。

于 2012-06-27T10:36:44.207 に答える
0

これを試してみてください。

onCreate()
{

spinnerLocation = (Spinner)findViewById(R.id.spinnerSettingLocation);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.location_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerLocation.setAdapter(adapter);
    spinnerLocation.setOnItemSelectedListener(new MyOnLocationSpinnerItemSelectedListener());

}



public class MyOnLocationSpinnerItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
        Toast.maketext(context,"selectedspinner" + pos,Toast.LENGTH_SHORT).show();

    }




    public void onNothingSelected(AdapterView parent) {
      // Do nothing.
    }
}
于 2012-06-27T10:37:48.710 に答える