【发布时间】:2015-09-17 18:21:32
【问题描述】:
我正在登录,其中包含用户代码和密码。然后,当这些字段完成时,有一个“登录”按钮被设置。启用(假),它将被设置。启用(真)允许访问(我这样做是为了避免一致性测试)。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText codigo;
final TextView nome;
final EditText senha;
codigo = (EditText) findViewById(R.id.cod_edit_text);
senha = (EditText)findViewById(R.id.senha_edit_text);
String cod = codigo.getEditableText().toString();
String password = senha.getEditableText().toString();
final Button botaologar = (Button) findViewById(R.id.button_logar);
if(!cod.isEmpty() || !password.isEmpty())
{
botaologar.setClickable(true);
botaologar.setEnabled(true);
}
else
{
botaologar.setEnabled(false);
botaologar.setClickable(false);
}
但是,当我捕获 EditText 的字符串时,由于某种原因它是空的,并且按钮仍然设置。启用(假)。
然后,我注意到,当我在 activity_main.xml 的 XML 上命名时,在 string.XML 上带有一些值的字符串,按钮保持 set.Enabled(true),但该值出现在 EditText 上,其值为字符串.xml。看:
文件activity_main.xml:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:text="@string/cod_edit_text"
android:id="@+id/cod_edit_text"
android:layout_below="@+id/codigo_text_view"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/senha_edit_text"
android:text="@string/senha_edit_text"
style="@style/AppTheme"
android:password="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/senha_text_view"
android:layout_alignParentLeft="true" />
文件字符串.xml:
<string name="cod_edit_text"> test </string>
<string name="senha_edit_text"> test </string>
所以,问题是我不能让按钮保持 .setEnabled(true) 因为我不能正确地获取 EditText 的值。有解决问题的办法吗?
【问题讨论】:
-
您是否使用过TextWatcher 在您的edittext 上收听文本编辑事件?从您的代码来看,if-else 似乎只在活动创建时执行.. 永远不会在您输入时执行
-
另外,我具体不知道 getEditableText() 是做什么的,但通常 getText() 用于获取内容
-
您显示的代码适用于您的
onCreate(...)方法,该方法仅在创建Activity并且之前您的用户甚至有机会进入时调用一次任何文字。
标签: java android xml string android-edittext