这是我的代码:这里有一些编辑文本。
public class MainActivity extends ActionBarActivity {
@InjectView(R.id.edt_fname) protected EditText account_fname;
@InjectView(R.id.edt_lnames) protected EditText account_lname;
@InjectView(R.id.edt_userid) protected EditText account_userid;
@InjectView(R.id.edt_pwd) protected EditText account_password;
@InjectView(R.id.edt_reenter) protected EditText account_reenter_pswd;
@InjectView(R.id.nxt_btn1) protected Button next_acct;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
next_acct.setEnabled(false);
if(( !account_fname.getText().toString().equals("")) &&
( !account_lname.getText().toString().equals("")) &&
( !account_userid.getText().toString().equals("")) &&
( !account_password.getText().toString().equals("")) &&
( !account_reenter_pswd.getText().toString().equals("")) )
{
next_acct.setEnabled(true);
next_acct.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), PersonalInfo.class));
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
});
} }
我的目标是当字段为空时,则禁用提交按钮 如果所有字段都填充了一些文本,则启用提交按钮。
我该怎么做?
答案 0 :(得分:1)
这很简单......
if(edttext.getText().toString().equals(edttext2.getText().toString()))
{
submit_button.setEnabled(true);
}
else
{
submit_button.setEnabled(true);
}
答案 1 :(得分:0)
试试这个
if((account_fname.getText() != null ) &&
( account_lname.getText() != null) &&
( account_userid.getText() != null) &&
( account_password.getText() != null) &&
( account_reenter_pswd.getText() != null) )
{
next_acct.setEnabled(true);
}
答案 2 :(得分:0)
您在onCreate方法中执行此操作。您需要在EditText上添加一个textChangeListener,然后将if语句放在textChangeListener中或创建一个方法,然后将if语句放入方法中,然后在TextChangeListener中调用该方法。
有关TextChangeListener的参考:Counting Chars in EditText Changed Listener
答案 3 :(得分:0)
这里的挑战实际上是收集EditText字段的内容。也就是说,一旦你有一个简单的调用来检索所有有趣的TextView或EditText字段,那么问题就变得微不足道了。
我试过这个,似乎有用。我相信它的结构变化或布局的EditText字段的嵌套不那么脆弱。要回答主题中的问题,如果数组中不包含“gatherEditTextContent(View root)”方法结果中的“null”条目,则可以启用提交按钮。
public static String[] gatherEditTextContent(View root) {
final Vector<String> v = new Vector();
Boolean stop = false;
scanEditText(root, new ETCallback() {
@Override
public boolean onEditText(EditText editText) {
v.add((editText.getText() == null ? "null" : editText.getText().toString()));
return false;
}
});
return v.toArray(new String[v.size()]);
}
/** initiate by passing v= root, callback non-null */
public static boolean scanEditText(View v, ETCallback callback) {
boolean stop = false;
if (v instanceof EditText) {
if (callback != null) stop = callback.onEditText((EditText)v);
}
else if (v instanceof ViewGroup) {
ViewGroup vg = (ViewGroup) v;
for (int i=0; (!stop && i < vg.getChildCount()); i++) {
View child = vg.getChildAt(i);
stop = scanEditText(child, callback);
}
}
return stop;
}
private interface ETCallback {
public boolean onEditText(EditText editText);
}