【发布时间】:2014-06-23 17:34:08
【问题描述】:
我正在创建一个应该
1. 获取微调器的值,“华氏到摄氏度”或“摄氏度到华氏度”
2.获取EditText的值并转换成整数
3. 将该整数乘以 100
4. 将TextView 文本设置为该整数。
问题是我收到了java.lang.NumberFormatException。
这是我的代码:
package org.infinitech.degreescalculator.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity{
public Spinner spinner;
public String selectedItem;
public EditText input;
public Button button;
public String inputValue=findViewById(R.id.input).toString();
public Integer num=Integer.parseInt(inputValue);
public String num2;
public TextView answer;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner=(Spinner)findViewById(R.id.options);
selectedItem=(String)spinner.getSelectedItem();
input=(EditText)findViewById(R.id.input);
button=(Button)findViewById(R.id.button);
answer=(TextView)findViewById(R.id.answer);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(selectedItem.equals("Fahrenheit to Celsius")){
num=num*100;
num2=num.toString();
answer.setText(num2);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
return super.onOptionsItemSelected(item);
}
}
这是我的日志:
原因:java.lang.NumberFormatException: Invalid int: ""
我修好了它!这是我修改后的新代码:
package org.infinitech.degreescalculator.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity{
public Spinner spinner;
public String selectedItem;
public EditText input;
public Integer num;
public Button button;
public TextView answer;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner=(Spinner)findViewById(R.id.options);
selectedItem=(String)spinner.getSelectedItem();
input=(EditText)findViewById(R.id.input);
button=(Button)findViewById(R.id.button);
answer=(TextView)findViewById(R.id.answer);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(selectedItem.equals("Fahrenheit to Celsius")){
num=Integer.parseInt(input.getText().toString())*100;
answer.setText(num.toString());
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
-
它告诉你
NullPointerException在哪里? -
@yate 是
java.lang.NumberFormatException我把 NullPointerException 代替了。固定。