Java 点击按钮获取EditText值,并使用该值进行计算?
我正在创建一个程序,它应该Java 点击按钮获取EditText值,并使用该值进行计算?,java,android,Java,Android,我正在创建一个程序,它应该 1.获取微调器的值,“华氏到摄氏度”或“摄氏到华氏度” 2.获取EditText的值,并将其转换为整数 3.将该整数乘以100 4.将TextViewtext设置为该整数。 问题是我得到了java.lang.NumberFormatException 这是我的代码: package org.infinitech.degreescalculator.app; import android.app.Activity; import android.os.
1.获取微调器的值,“华氏到摄氏度”或“摄氏到华氏度”
2.获取
EditText
的值,并将其转换为整数3.将该整数乘以100
4.将
TextView
text设置为该整数。问题是我得到了
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:无效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);
}
}
从
活动中删除以下行
public String inputValue=findViewById(R.id.input).toString();
public Integer num=Integer.parseInt(inputValue);
并将OnCreate
方法添加为
String inputValue= input.getText().toString();
Integer num=Integer.parseInt(inputValue);
因为已经定义了input EditText
要将num转换为String,请使用String.valueOf
而不是.toString()
。因此,将单击函数时的按钮更改为
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(selectedItem.equals("Fahrenheit to Celsius")){
num=num*100;
answer.setText(String.valueOf(num));
}
}
});
改变这个
public String inputValue=findViewById(R.id.input).toString();
作为
像这样使用getText()
您应该在onCreate()方法中执行所有这些操作它告诉您
NullPointerException
在哪里?@yate它是java.lang.NumberFormatException
我改为使用NullPointerException。固定的。这对你有用吗?还要检查@codeMagic建议的链接。恐怕它仍然不起作用。我收到java.lang.NumberFormatException
@InfiniTech您是否更改了代码,请同时发布logcat异常。@InfiniTech什么是输入值,即edittext值。试着按照我的建议修改代码。现在是java.lang.NullPointerException
public String inputValue=(EditText)findViewById(R.id.input).getText().toString();
EditText inputView = (EditText) findViewById(R.id.input);
String inputValue = inputView.getText().toString();