第一个Android应用 - 无法将EditText转换为整数值

问题描述:

我正在尝试编写我的第一个Android应用。它将采用用户在EditText字段中输入的数字,将其转换为整数,然后查找这些因素。我想从我之前编写的Java程序中移植它。我有存根工作的点,我有一个用户界面,但我还没有移植将查找因素的代码。我试图将EditText转换为整数。如果我插入以下任一行,则该程序在仿真器中崩溃。 Log.Cat说,“由NumberFormatExcepion引起:无法解析”作为一个整数。“第一个Android应用 - 无法将EditText转换为整数值

任何建议表示赞赏。

userNumber是从EditText字段获取的值的名称,EditText字段也被命名为userNumber。我不知道这是不是好的形式。我想将userNumber的值分配给整数值userInt。 userInt将被分解。

这些approaces的要么会导致此问题:

userNumber = (EditText) findViewById(R.id.userNumber); 
userInt = Integer.parseInt(userNumber.getText().toString()); 


Integer userInt = new Integer(userNumber.getText().toString()); 

XML的EditText上块看起来是这样的:

<EditText 
    android:id="@+id/userNumber" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="number" > 

    <requestFocus /> 
</EditText> 

这里是从类的相关代码:

public class AndroidFactoringActivity extends Activity { 

// Instance Variables 
EditText userNumber; 
Button factorButton; 
TextView resultsField; 
int factorResults = 1; 
int userInt = 0; // This comes out if using Integer userInt 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    resultsField = (TextView) findViewById(R.id.resultsField); 
    factorButton = (Button) findViewById(R.id.factorButton); 
    userNumber = (EditText) findViewById(R.id.userNumber); 
       // userNumber is also the name of the EditText field. 

    // userInt = Integer.parseInt(userNumber.getText().toString()); 

    // Integer userInt = new Integer(userNumber.getText().toString()); 

    resultsField.append("\n" + String.valueOf(userInt)); 
       //Later, this will be factorResults, not userInt. 
       // Right now, I just want it to put something on the screen.  

} 
} 

您试图解析onCreate方法中的int,该方法出现在befor e用户有机会输入任何东西到EditText。因此,试图解析空字符串的例外。

您必须先按下按钮,然后才能从EditText中解析int,或者将侦听器附加到EditText,以便在输入内容时解析该侦听器。

+0

Ralgha,谢谢。 –

+0

这工作。我很开心。 –