我是android新手。 按下计算按钮, 调用calculate方法但是当文本字段为空并且如果按下计算按钮时,应用程序崩溃。 等待回答。非常感谢。
public class NetRr extends MainActivity implements View.OnClickListener
{
float f1=0f,f2=0f,f3=0f,f4=0f,f5=0f;
String s1="",s2="",s3="",s4="",s5="";
public EditText NetrrRS,NetrrOF,NetrrRC,NetrrOB;
public Button NetrrCAL,NetrrRES;
public TextView NetrrTV;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.net_rr);
NetrrCAL=(Button)findViewById(R.id.NetrrCAL);
NetrrRES=(Button)findViewById(R.id.NetrrRES);
NetrrRS= (EditText)findViewById(R.id.NetrrRS);
NetrrOF=(EditText)findViewById(R.id.NetrrOF);
NetrrRC= (EditText)findViewById(R.id.NetrrRC);
NetrrOB=(EditText)findViewById(R.id.NetrrOB);
NetrrTV=(TextView) findViewById(R.id.NetrrTV);
NetrrCAL.setOnClickListener(this);
NetrrRES.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.NetrrCAL:
NetCal();
break;
case R.id.NetrrRES:
NetRES();
break;
}
}
public void NetCal()
{
if(NetrrRS.getText().toString().equals(""))
{
NetrrRS.setText("");
}
else
{
s1=NetrrRS.getText().toString();
}
if(NetrrOF.getText().toString().equals(""))
{
NetrrOF.setText("");
}
else
{
s2=NetrrOF.getText().toString();
}
if(NetrrRC.getText().toString().equals(""))
{
NetrrRC.setText("");
}
else
{
s3 = NetrrRC.getText().toString();
}
if(NetrrOB.getText().toString().equals(""))
{
NetrrOB.setText("");
}
else
{
s4 = NetrrOB.getText().toString();
}
f1=Float.parseFloat(s1);
f2=Float.parseFloat(s2);
f3=Float.parseFloat(s3);
f4=Float.parseFloat(s4);
f5= (f1/f2)-(f3/f4);
s5=String.valueOf(f5);
NetrrTV.setText(s5);
}
public void NetRES()
{
NetrrRS.setText("");
NetrrOF.setText("");
NetrrRC.setText("");
NetrrOB.setText("");
NetrrTV.setText("");
NetrrRS.requestFocus();
}
}
谢谢..
答案 0 :(得分:0)
任何数值不同的值都会抛出java.lang.NumberFormatException。
有两种选择:
当你的字符串不是数字时,你可以做一个逻辑来避免解析。或者你可以处理NumberFormatException。所以,你的应用程序不会崩溃。
答案 1 :(得分:0)
请遵守以下代码:
public class NetRr extends MainActivity implements View.OnClickListener
{
float f1=0f,f2=0f,f3=0f,f4=0f,f5=0f;
String s1="",s2="",s3="",s4="",s5="";
public EditText NetrrRS,NetrrOF,NetrrRC,NetrrOB;
public Button NetrrCAL,NetrrRES;
public TextView NetrrTV;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.net_rr);
NetrrCAL=(Button)findViewById(R.id.NetrrCAL);
NetrrRES=(Button)findViewById(R.id.NetrrRES);
NetrrRS= (EditText)findViewById(R.id.NetrrRS);
NetrrCAL.setOnClickListener(this);
NetrrRES.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.NetrrCAL:
sUsername = NetrrRS.getText().toString();
//checks the edit text is empty or not
if (sUsername.matches("")) {
//if empty set yout text
NetrrRS.setText("Your Text");
}
break;
case R.id.NetrrRES:
//same approach follows as above
break;
}
}
}