Моя цель - получить ввод в полях редактирования текста. Идея состояла в том, чтобы отключить кнопку «отправить», пока пользователь не вводит все детали. Однако у меня возникла проблема, пытаясь это сделать.Как отключить кнопку только при отсутствии пользовательского ввода?
У меня нет проблем с намерениями или экранами.
Код:
public class Welcome extends Activity
{
EditText efn,eln,eage;
Button submit;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
efn=(EditText)findViewById(R.id.fname);
eln=(EditText)findViewById(R.id.lname);
eage=(EditText)findViewById(R.id.age);
submit=(Button)findViewById(R.id.submit);
submit.setEnabled(CheckIfOkInput());
// I guess the problem is over here <--
if(CheckIfOkInput()==false)
{
while(CheckIfOkInput())
{
efn=(EditText)findViewById(R.id.fname);
eln=(EditText)findViewById(R.id.lname);
eage=(EditText)findViewById(R.id.age);
}
submit.setEnabled(true);
}
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent iHome=new Intent (Welcome.this,Home_page.class);
String ln=eln.getText().toString();
String fn=efn.getText().toString();
int age=Integer.valueOf (eage.getText().toString());
iHome.putExtra("fname", fn);
iHome.putExtra("lname", ln);
iHome.putExtra("age", age);
startActivity(iHome);
}
});
}
public boolean CheckIfOkInput()
{
if(this.eln.getText().toString()==""||this.efn.getText().toString()=="")
{
return false;
}
return true;
}
}
И результат этого кода является то, что кнопка Submit просто держать отключенный навсегда.
Надеюсь, вы, ребята, могли мне помочь.
Заранее благодарен,
Yaniv.
Хорошо. Но для чего подходит EditTextLisnter? Я имею в виду - что он делает? – YanivGK
Это слушатель, метод выше, onTextChanged, вызывается каждый раз, когда изменяется текст его edittext. Таким образом, каждый раз, когда пользователь пишет что-то на edittext, он вызывает onTextChanged и проверяет, имеют ли оба edittexts текст. – Giacomoni
Хорошо, я понял теперь, и кнопка действительно отключается только тогда, когда есть текст. Но по какой-то причине кнопка не работает после того, как я ее нажимаю. и заставить приложение перестать работать. – YanivGK