我有一个按钮和一个只在我的主xml中输入类型编号的EditText。我想检查输入的所有值。我到目前为止所做的工作正常,我可以检查是否从零开始,然后敬酒注意消息,如果值为零也是一个toast msg,如果输入的值大于25,这完全适用于我的onClick程序来自xml中的按钮。
我无法解决的问题是当您删除编辑文本中的所有数字并且为空时。我尝试了很多代码,并且我的应用程序一直崩溃。
我的代码来自xml的编辑文本:
<EditText
android:id="@+id/numarJocuri"
android:background="@drawable/decor_fundal_la_edittext"
android:paddingTop="6dp"
android:paddingLeft="32dp"
android:paddingRight="32dp"
android:paddingBottom="6dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="number"
android:maxLength="2"
android:textColor="#be9e51"
android:textColorHint="#c8e6c9"
android:textSize="14sp"
android:text="1"/>
我的代码来自xml的按钮:
<Button
android:layout_width="match_parent"
android:layout_height="38dp"
android:background="@drawable/buton_incepeti"
android:drawableLeft="@drawable/ok1"
android:gravity="center"
android:layout_marginBottom="4dp"
android:onClick="beginClick"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:text="@string/incepeti"
android:textColor="#ffffff" />
我在java主代码上点按了按钮的步骤:
//BEGIN CLICK
public void beginClick(View view) {
//initialize the edit text
final EditText edMeu = (EditText) findViewById(R.id.numarJocuri);
String s1;
s1 = edMeu.getText().toString().trim();
int numar1;
numar1 = Integer.parseInt(s1);
//the value entered to not be bigger then 25
if (numar1 > 25) {
Toast.makeText(getApplicationContext(), getString(R.string.atentie_numar_maxim), Toast.LENGTH_SHORT).show();
return;
}
//to not start with zero
if (edMeu.getText().toString().startsWith("0")) {
Toast.makeText(getApplicationContext(), getString(R.string.nu_incepe_cu_zero), Toast.LENGTH_SHORT).show();
return;
}
}//SFARSIT BEGIN CLICK
所以,直到现在所有这一切都有效。
我试过这个,但是按钮点击不能在这里工作。在alertdialog的其他活动中,此代码可以正常工作。
//check to not be empty
String verif_text1 = edMeu.getText().toString().trim();
if(verif_text1.isEmpty() || verif_text1.length() == 0 || verif_text1.equals("") || verif_text1 == null)
{
Toast.makeText(getApplicationContext(), getString(R.string.msg_null_values), Toast.LENGTH_LONG).show();
return;
} //end checking
此外,我试图检查该编辑文本的长度,但没有奏效。
答案 0 :(得分:1)
您可以尝试使用isEmpty()来检查文本是否为空
edMeu.getText().toString().isEmpty()
答案 1 :(得分:0)
最后我解决了。这是如何:
主要问题是我在将其值转换为整数之后尝试检查编辑文本,所以在我更仔细地检查android控制台上显示的错误之后,我知道问题出在哪里。
代码进入我的java按钮
//begin click for the button
public void beginClick(View view) {
//initialize
final EditText edMeu = (EditText) findViewById(R.id.numarJocuri);
String s1;
s1 = edMeu.getText().toString().trim();
//here is the verification for not to be empty or no value entered
if (s1.toString().isEmpty()) {
Toast.makeText(getApplicationContext(), getString(R.string.games_not_entered), Toast.LENGTH_SHORT).show();
return;
}
//transform into integer values
//after the string was checked above
int numar1;
numar1 = Integer.parseInt(s1);
//to not be bigger then 25, after is transformed in integer
if (numar1 > 25) {
Toast.makeText(getApplicationContext(), getString(R.string.atentie_numar_maxim), Toast.LENGTH_SHORT).show();
return;
}
//to not start with zero values
if (edMeu.getText().toString().startsWith("0")) {
Toast.makeText(getApplicationContext(), getString(R.string.nu_incepe_cu_zero), Toast.LENGTH_SHORT).show();
return;
}
} //end of begin click for the button
这就是全部,并不难,但在编写代码时需要更多关注。