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 回答