我正在尝试使用Android中的EditText字段将String转换为Integer,但是当我尝试单击按钮时,我的应用程序崩溃了。字符串部分可以工作但问题仅在用户在名为Number。的
的EditText字段中键入整数时 package com.example.addingvalu;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText Number,txtval;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void ViewaNumber(View V1)
{
txtval = (EditText) findViewById(R.id.Stringvalue);
Number = (EditText) findViewById(R.id.Numbers_text);
//String ab;
int ed;
ed = Integer.parseInt(Number.getText().toString());
if(txtval.length() != 0)
{
Toast.makeText(getBaseContext(), "String " + txtval.getText().toString() ,Toast.LENGTH_LONG).show();
}
else if(Number.length() !=0)
{
Toast.makeText(getBaseContext(),ed, Toast.LENGTH_LONG).show();
}
}
}
答案 0 :(得分:0)
使用UpperCase启动方法和属性是一种很好的做法。 还添加一个try / catch来打印可能的错误,并提供一些如何解决它的线索。 尝试:
beginBackgroundTaskWithName
答案 1 :(得分:0)
看看。
try{
int ed=Integer.valueOf(number.getText().toString());
}catch(NumberFormatException e){
e.printStackTrace();
}
我希望它能帮到你......!
答案 2 :(得分:0)
我刚跑了这个,主要有两个问题。
parseInt()
输入。int
原语传递给Toast.makeText()
您可以将int
原语附加到String
,这样就有效了:
Toast.makeText(getBaseContext(),"Number " + ed, Toast.LENGTH_LONG).show();
以上相当于:
"Number " + new Integer(ed).toString()
你也可以转换回String
Toast:
Toast.makeText(getBaseContext(), String.valueOf(ed), Toast.LENGTH_LONG).show();
以下是修复这两个问题的工作和测试代码:
public class MainActivity extends Activity {
EditText number,txtval;
int ed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void ViewaNumber(View V1)
{
txtval = (EditText) findViewById(R.id.Stringvalue);
number = (EditText) findViewById(R.id.Numbers_text);
//String ab;
if(txtval.length() != 0)
{
Toast.makeText(getBaseContext(), "String " + txtval.getText().toString() ,Toast.LENGTH_LONG).show();
}
else if(number.length() !=0)
{
//Make sure number is non-empty before calling parseInt()
ed = Integer.parseInt(number.getText().toString());
Toast.makeText(getBaseContext(),"Number " + ed, Toast.LENGTH_LONG).show();
}
}
}