我是Android和制作和应用的新手,需要编辑文本及其验证。我尝试了不同的方法来验证编辑文本,但是没有用。请帮帮我一下,谢谢。 我想设置要输入的值的范围,例如:如果超过13到80之间然后给出错误,我的代码仅在编辑文本为空时才会出错,但是当值小于13或大于80。
那些因为质量低或其他原因投票我的问题的人请我投票给我,因为我是这个网站的新手,我现在不想问问质量问题。因此,我的帐户被禁止,我无法提出新问题。请为初学者开发一些帮忙。感谢
以下是我使用的代码:
EditText age = (EditText)findViewById(R.id.age);
EditText weight= (EditText)findViewById(R.id.weight);
EditText height= (EditText)findViewById(R.id.height);
Button calculate = (Button) findViewById(R.id.btn_cal);
calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String a=age.getText().toString();
final String w=weight.getText().toString();
final String h=height.getText().toString();
if(a.length()==0 || (a.length()<12 && a.length()>81)){
age.requestFocus();
age.setError("Between 13 ans 80");
}
else if(w.length()==0 || (w.length()<40 && w.length()>301)){
weight.requestFocus();
weight.setError("Weight required!");
}
else if(h.length()==0 || (h.length()<49 && h.length()>251)){
height.requestFocus();
height.setError("Height required!");
}
else{
aN=Integer.parseInt(a);
wN=Integer.parseInt(w);
hN=Integer.parseInt(h);
}
}
});
答案 0 :(得分:2)
a.length()<12 && a.length()>81)
此行表示“长度小于12且同时大于81”。它总是错误的。
应该是
int ageValue = Integer.valueOf(a);
if (ageValue < 12 || ageValue > 80) {
并且无需检查length() == 0
,因为它属于length() < 12
条件。
答案 1 :(得分:1)
您可以使用Integer.parse()
,例如:
int a = Integer.parse(edittext1.getText().toString().trim());
if(a >= 13 && a <= 80)
{
//do something
}
答案 2 :(得分:0)
这里有一个年龄,它是一个字符串,你怎么比较a.length()??
实际可能
int intAge = 0;
try{
intAge = Integer.parseInt(a);
}catch(Exception e){
}
if (a.length()==0 || (intAge < 12 || intAge > 80)) {
// your code
}
然后比较其他情况
答案 3 :(得分:0)
if(age.getText().toString().length()==0 ||
!(a>12 && a<=80))
{
age.requestFocus();
age.setError("Between 13 ans 80");
}
else if(weight.getText().toString().length()==0 ||
!(w>40 && w<=300))
{
weight.requestFocus();
weight.setError("Weight required!");
}
else if(height.getText().toString().length()==0 ||
!(h>50 && h<=250))
{
height.requestFocus();
height.setError("Height required!");
}
答案 4 :(得分:0)
我正在为您提供基本代码,以便您可以根据自己的需要进行扩展。使用以下代码
MainActivity.java
editText = (EditText) findViewById(R.id.editText1);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int age = Integer.parseInt(editText.getText().toString().trim());
if (age > 13 && age <= 80) {
Toast.makeText(MainActivity.this, "Valid age", Toast.LENGTH_LONG).show();
}
}
});
main.xml中
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:text="Button" />
此代码将覆盖“有效年龄”的消息。如果您输入的年龄介于13岁和13岁之间80。