0

私はアイテムを追加するためのそのような方法を持っています:

timezoneEdit.setOnClickListener(new OnClickListener() {
        public void onClick(View v)
        {
             timezonSpin = (Spinner) findViewById(R.id.timezoneSpin);//timezoneCall();  
           final ArrayList <String> timezonelist = new ArrayList<String>();

            timezonelist.add("Gvatemala");
            timezonelist.add("Gonduras");
            timezonelist.add("Batumi");
            timezonelist.add("Boston");
            timezonelist.add("Zhytomir");
            timezonelist.add("Zmerinka");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(NewOrderActivity.this,
            android.R.layout.simple_spinner_item, timezonelist);
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            timezonSpin.setAdapter(dataAdapter);timezonSpin.performClick(); 
            timezonSpin.setOnItemSelectedListener(new OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
                {

                    Log.i("sd","Ya tut");
                    Log.i("choosed",timezonelist.get(position).toString());
                    timezoneEdit.setText(timezonelist.get(position));
                }

                public void onNothingSelected(AdapterView<?> arg0) {

                    TimeZone timezone = TimeZone.getDefault();
                    String TimeZoneName = timezone.getDisplayName();
                    int TimeZoneOffset = timezone.getRawOffset()/(60 * 60 * 1000);
                    Log.i("timezone",Integer.toString(TimeZoneOffset));
                    timezoneEdit.setText("UTC"+Integer.toString(TimeZoneOffset), TextView.BufferType.EDITABLE);

                }
         });

ユーザーがボタンをクリックすると、スピナーが表示され、ユーザーは項目の 1 つを選択できます。しかし奇妙なことは、onItemSelectedListener が呼び出されていないことです。私は他の通常のスピナーにそのようなシェマを使用しています(ボタンクリックを使用せずに)、すべてが正常に機能します...何が欠けていますか?

4

2 に答える 2

1
timezoneEdit.setOnClickListener(new OnClickListener() {
        public void onClick(View v)
        {
             Spinner timezonSpin = (Spinner) findViewById(R.id.timezoneSpin);//timezoneCall();  
           final ArrayList <String> timezonelist = new ArrayList<String>();

            timezonelist.add("Gvatemala");
            timezonelist.add("Gonduras");
            timezonelist.add("Batumi");
            timezonelist.add("Boston");
            timezonelist.add("Zhytomir");
            timezonelist.add("Zmerinka");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(NewOrderActivity.this,
            android.R.layout.simple_spinner_item, timezonelist);
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            timezonSpin.setAdapter(dataAdapter);timezonSpin.performClick(); 
            timezonSpin.setOnItemSelectedListener(new OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
                {

                    Log.i("sd","Ya tut");
                    Log.i("choosed",timezonelist.get(position).toString());
                    timezoneEdit.setText(timezonelist.get(position));
                }

                public void onNothingSelected(AdapterView<?> arg0) {

                    TimeZone timezone = TimeZone.getDefault();
                    String TimeZoneName = timezone.getDisplayName();
                    int TimeZoneOffset = timezone.getRawOffset()/(60 * 60 * 1000);
                    Log.i("timezone",Integer.toString(TimeZoneOffset));
                    timezoneEdit.setText("UTC"+Integer.toString(TimeZoneOffset), TextView.BufferType.EDITABLE);

                }
         });

上記のコードを試してください。setOnClickListenerイベント内にスピナーオブジェクトを作成する必要があると思います。

于 2012-08-23T11:48:59.703 に答える
0

ブロックから timezonSpinner.setOnItemSelectedListener を取り出します timezoneEdit.setOnClickListener(new OnClickListener() { }

于 2012-08-23T11:47:21.610 に答える