两个EditText在传递给另一个之前必须完成一个



首先,如果我的英语有错误,我很抱歉。

我对安卓很陌生。我的问题是,我在活动中有两个EditText,分别称为Name和Phone。所以我想要的是,如果之前没有完成EditText Name,用户就不能在Phone中写下。

我尝试过实现OnFocusChange方法,但我不知道我是否实现得很好。

这是我的类代码,其中"et_nom"是EditText名称,"et_tel"是EditTextPhone。我做错了什么?

谢谢

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);
        }
    }

}

您可能需要考虑实现一个文本更改观察器,并根据第一个的内容启用或禁用第二个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);
            }
        }
    });

如果第一个文本中有任何文本,这将启用第二个编辑文本,如果第一个为空,则禁用第二个。

最新更新