1

私はインターフェースを持っています。このインターフェースには、ブラウザーとチャートの2つの値を持つスピナーがあります。ブラウザを選択すると、eTxtUrlという別のeditTextが有効になります。チャートを選択すると、このEditTextを無効にします。

これは私のコードです:

    spinnerTipoView =(Spinner) findViewById(R.id.spinnerTipoView);
    nomeTabellaGen=nomeTabella;

    spinnerTipoViewArray=new ArrayList<String>();

    if(addingRecord==true||tableDataChart==null)
        spinnerTipoViewArray=CpmAnalysisParams.tipoViewAdding();
    else    
        spinnerTipoViewArray=CpmAnalysisParams.tipoView();

    spinnerTipoViewArrayAdapter=new ArrayAdapter<String>(this, R.layout.spinner, spinnerTipoViewArray);
    spinnerTipoViewArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerTipoView.setAdapter(spinnerTipoViewArrayAdapter);
    if(addingRecord==true||tableDataChart==null)
        spinnerTipoView.setOnTouchListener(SpinnerTipoViewOnTouch);

    spinnerTipoView.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {


            if(arg0.getItemAtPosition(arg2).toString().toUpperCase().equals("CHART")){

                try {
                    eTxtUrl=(EditText) findViewById(R.id.editTextUrl);
                    eTxtUrl.setEnabled(false);
                    eTxtUrl.setFocusable(false);
                    spinnerCategoria=(CustomSpinner)findViewById(R.id.spinnerCategoria);
                    spinnerCategoria.setEnabled(true);
                    spinnerTabella=(CustomSpinner)findViewById(R.id.spinnerTabella);
                    spinnerTabella.setEnabled(true);
                    spinnerAscissa=(CustomSpinner)findViewById(R.id.spinnerAscissa);
                    spinnerAscissa.setEnabled(true);
                    buildSpinnerAreaDisplay();
                    buildSpinnerCategoria();
                    if(nomeTabellaGen!=""){
                        buildSpinnerTabella(nomeTabellaGen);
                    }
                    else
                        buildSpinnerTabella("");
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
            else if(arg0.getItemAtPosition(arg2).toString().equals("Seleziona tipo view")){
                buildSpinnerAreaDisplay();
                buildGrafConfigSpinnerDisabled();

            }
            else{
                try {
                    eTxtUrl=(EditText) findViewById(R.id.editTextUrl);
                    eTxtUrl.setEnabled(true);
                    eTxtUrl.setFocusable(true);
                    spinnerCategoria=(CustomSpinner)findViewById(R.id.spinnerCategoria);
                    spinnerCategoria.setOnTouchListener(null);
                    spinnerCategoria.setEnabled(false);
                    spinnerTabella=(CustomSpinner)findViewById(R.id.spinnerTabella);
                    spinnerTabella.setEnabled(false);
                    spinnerTabella.setOnTouchListener(null);
                    spinnerAscissa=(CustomSpinner)findViewById(R.id.spinnerAscissa);
                    spinnerAscissa.setEnabled(false);
                    spinnerAscissa.setOnTouchListener(null);
                    buildSpinnerAreaDisplay();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            // TODO Auto-generated method stub

        }

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

        }


    });


}

ブラウザ、グラフ、ブラウザの順に選択すると、編集テキストがまだ無効になっているため、何が問題なのかわかりません。

前もって感謝します。

4

1 に答える 1

3

編集を有効にするには-次を使用してみましたか?

eTxtUrl.setFocusableInTouchMode(true)

その行の代わりに(または後に):

eTxtUrl.setFocusable(true);
于 2012-10-02T19:36:21.473 に答える