2012-10-02 3 views
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 

     } 


    }); 


} 

:

이 내 코드입니다.

미리 감사드립니다.

+0

을, 당신이 선택하면 그때 당신의 EditText를 숨기고 EditText를 숨기고 사용자가 edittext를 볼 필요가 있기 때문에 모든 선택 항목 이벤트 – Houcine

+0

에서 그 ID로 뷰를 찾을 때마다 VISIBLE을 선택 해제하십시오. 나는 그것을 보이지 않게하고 싶다, 나는 그것만을 무능하게한다. –

+0

toUpperCase() 메쏘드가 문제가된다. 확인해 봐. –

답변

3

편집을 사용하려면 -이 사용 시도 :

eTxtUrl.setFocusableInTouchMode(true) 
대신

(또는 후) 그 라인 : 왜 당신이 당신의 EditText의 가시성 작동하지 않는

eTxtUrl.setFocusable(true); 
+1

그래, 작동! 감사!!! –