3

編集テキスト、非表示のスピナー、およびボタンを含むビューオブジェクトがあります。LayoutInflaterを介してビューをロードすると、ビューが表示され、すべてが正常に機能します。ボタンを押すとスピナーリストが表示され、必要なアイテムを選択します。私の問題は、スピナーのsetOnItemSelectedListenerが起動しないため、edittextを選択した値に設定できないことです。

ArrayAdapterアダプター=newArrayAdapter(this、android.R.layout.simple_spinner_item、listItems); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

                        Spinner spn = (Spinner)sEdit.findViewWithTag("spn"+fieldID);
                        final String spnHolder = "spn"+fieldID;

                        spn.setAdapter(adapter);
                        ImageButton bSpn = (ImageButton)sEdit.findViewWithTag("btn"+fieldID);
                        bSpn.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                curVw = (EditText)sEdit.findViewWithTag(v.getTag().toString().split("btn")[1]);
                                ((Spinner)sEdit.findViewWithTag(spnHolder)).performClick();
                            }

                        });

                        try {
                            spn.setOnItemSelectedListener(new OnItemSelectedListener() {
                                @Override
                                public void onItemSelected(AdapterView<?> arg0, View arg1,
                                        int arg2, long arg3) {
                                    curVw.setText(((TextView)arg1).getText().toString());
                                }

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

                                }
                            });
                        }
                        catch (Exception ex) 
                        {
                            ex.printStackTrace();
                        }

Try ... Catchを追加して、その時点を過ぎて失敗したかどうかを確認しましたが、呼び出されることはありません。

4

1 に答える 1

0

使用する代わりに、次を使用してSetOnclickListenerください。

spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

   //implements methods and perform your action. This will works definately
};
于 2014-04-19T17:16:10.073 に答える