设置edittext启用/禁用

时间:2012-10-02 15:47:48

标签: android spinner

我有一个界面。在这个界面中,我有一个带有2个值的微调器:Browser和Chart。当我选择浏览器时,我希望启用另一个名为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

        }


    });


}

我不知道出了什么问题,因为当我选择浏览器,然后是图表,再浏览器时,我的编辑文本仍然被禁用。

提前致谢。

1 个答案:

答案 0 :(得分:3)

要启用编辑 - 您是否尝试过使用:

eTxtUrl.setFocusableInTouchMode(true)

代替(或之后)该行:

eTxtUrl.setFocusable(true);