我的目标是在编辑文本字段中获取输入。只要用户没有输入所有细节,我们的想法是禁用“提交”按钮。但是我在尝试这样做时遇到了问题。
我对Intent或屏幕没有问题。
代码:
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;
}
}
此代码的结果是“提交”按钮会一直被禁用。
希望你们能帮助我。
提前致谢,
的Yaniv。
答案 0 :(得分:2)
您可以在每个EditText
上添加一个监听器来制作类似以下代码的内容,当EditText
的文字发生变化时,您可以验证EditText
是否都有文字。
顺便说一句,使用.equals
方法比较字符串,如果"".equals(this.eln.getText().toString())
返回null,您可以使用this.eln.getText().toString()
来避免nullpointerexceptions。
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(!"".equals(this.eln.getText().toString()) && !"".equals(this.efn.getText().toString()){
submit.setEnabled(true);
}
}
}
答案 1 :(得分:0)
不要使用一段时间,因为你会一直“做”某事。你需要一个倾听者。就像一个按钮的onclick-listener,然后是编辑文本字段的on-change listener
方法:制作一个听众,每次(对于初学者,您可以稍后更新)您的更改已注册,您检查输入字段是否为空。如果是,则禁用该按钮,否则启用它。
很容易找到changelistener,例如:Counting Chars in EditText Changed Listener
该问题中的代码是关于计算字符的,但这几乎就是你想要的:计算字符数,如果它们是0(或不是0)做某事。