2014-10-20 46 views
1

首先抱歉,如果我有我的英語錯誤。兩個EditText之前必須完成傳遞給另一

我對android非常陌生。我的問題在於,我有兩個EditText,在活動上稱它們爲Name和Phone。所以我想要的是,如果用戶在之前沒有完成EditText Name,用戶將無法在Phone中記錄下來。

我已經嘗試實現OnFocusChange方法,但我不知道我是否實施得很好。

所以有我的班級代碼,其中「et_nom」是EditText名稱和「et_tel」是EditText手機。我做錯了什麼?

謝謝

public class MainActivity extends Activity implements OnClickListener, OnFocusChangeListener{ 

    EditText et_nom, et_tel; 
    RadioButton rg_mascle,rg_femella; 
    Switch sw_carnet; 
    RatingBar rb_estrellas; 
    String texto; 
    Button b_enviar; 
    Intent intent; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.primera); 
     et_nom = (EditText)findViewById(R.id.et_nom); 
     et_tel = (EditText)findViewById(R.id.et_tel); 
     rg_mascle = (RadioButton)findViewById(R.id.rg_mascle); 
     rg_femella = (RadioButton)findViewById(R.id.rg_femella); 
     sw_carnet = (Switch)findViewById(R.id.sw_carnet); 
     rb_estrellas = (RatingBar)findViewById(R.id.rb_estrellas); 
     b_enviar = (Button)findViewById(R.id.b_enviar1); 
     b_enviar.setOnClickListener(this); 
     et_tel.setFocusable(false); 
     et_tel.setClickable(true); 

    } 

    public void onRadioButtonClicked(View v) 
    { 
     boolean checked = ((RadioButton) v).isChecked(); 

    } 

    @Override 
    public void onClick(View v) { 

     if (v.getId() == R.id.b_enviar1) 
     { 
      intent = new Intent(MainActivity.this, Segunda_Act.class); 
      startActivity(intent); 
     } 

    } 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 

     if(v.getId() == R.id.et_nom && hasFocus) 
     { 
      et_tel.setFocusable(true); 
     } 

    } 


} 

回答

0

你可能想看看如何實現一個文本的變化觀察家代替,並啓用或禁用基於第一內容的第二個EditText上:

editText1.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      if(editText1.getText() != null && !editText1.getText().equals("")) 
      { 
       editText2.setEnabled(true); 
      } 
      else 
      { 
       editText2.setEnabled(false); 
      } 
     } 
    }); 

這將如果第一個文本中有任何文本,則啓用第二個編輯文本,如果第一個文本爲空,則禁用第二個文本。

+0

它不起作用。我在OnCreate方法上實現它,是不是? – Sergio 2014-10-20 19:42:00

+0

什麼部分不起作用?你是否能夠調試該事件,或者該事件不會觸發?此外,您還需要在佈局xml中將第二個EditText設置爲enabled = false,以便從禁用狀態開始。 – invertigo 2014-10-20 19:47:15

+0

是的,在'onCreate()'是個好地方 – invertigo 2014-10-20 19:47:48

相關問題