首先抱歉,如果我的英语有错误。
我对android很新。我的问题是我在活动上有两个EditText,称为Name和Phone。所以我想要的是用户如果以前没有在电话中写下来,那么EditText名称就没有完成。
我尝试过实施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 :(得分: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);
}
}
});
如果第一个文本中有任何文本,则启用第二个编辑文本;如果第一个文本为空,则启用第二个编辑文本。