Мне было интересно, может ли кто-нибудь помочь мне здесь. Я создаю приложение для Android в качестве окончательного проекта, и в настоящее время оно работает нормально, за исключением одной части. У меня проблема в том, что этот класс не работает
public class convert extends Activity
{
Button mButton;
EditText eweight;
EditText eheight;
TextView t;
String s,s2;
double meters = 0;
double kg = 0;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams. FLAG_FULLSCREEN);
setContentView(R.layout.convert);
eweight = (EditText)findViewById(R.id.eweight);
eheight = (EditText)findViewById(R.id.eheight);
}
public void converth(View view)
{
s2 = convert.this.eweight.getText().toString();
int stone = Integer.parseInt(s2);
kg = stone*6.35;
t = (TextView)findViewById(R.id.newweight);
t.setText(""+kg);
}
public void convertw(View view)
{
s = convert.this.eheight.getText().toString();
int feet = Integer.parseInt(s);
meters = feet*0.3048;
t = (TextView)findViewById(R.id.newheight);
t.setText(""+meters);
}
public void pass(View view)
{
Intent i = new Intent();
i.setClassName("com.b00348312.workout","com.b00348312.workout.WorkoutChoice");
if (meters > 0)
{
double number = getIntent().getDoubleExtra("height", meters);
}
if (kg > 0)
{
double number2 = getIntent().getDoubleExtra("weight", kg);
}
startActivity(i);
}
Когда нажимаются кнопки, настроенные в XML, появляется экран с сообщением о принудительном закрытии приложения.
Кнопки настраиваются с помощью встроенного оператора "andoid: onClick = ''" в xml. Операторы для getText () также используются в этом классе и отлично работают
public void onCreate(Bundle savedInstanceState)
{
// add a click listener to the button
mPickDate.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
// get the current date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
// display the current date (this method is below)
updateDisplay();
mButton = (Button)findViewById(R.id.get);
weight = (EditText)findViewById(R.id.weight);
height = (EditText)findViewById(R.id.height);
t = (TextView)findViewById(R.id.out);
mButton.setOnClickListener(
new View.OnClickListener()
{
public void onClick(View view)
{
s = WorkoutChoice.this.weight.getText().toString();
s2 = WorkoutChoice.this.height.getText().toString();
int w = Integer.parseInt(s);
double h = Double.parseDouble(s2);
double BMI = (w/h)/h;
t.setText(""+BMI);
}
});
}
Кто-нибудь знает, почему утверждение работает в одном классе, а не в другом:
Вот что из logcat:
03-05 22:22:34.637: E/global(2987): Deprecated Thread methods are not supported.
03-05 22:22:34.637: E/global(2987): java.lang.UnsupportedOperationException
03-05 22:22:34.637: E/global(2987): at java.lang.VMThread.stop(VMThread.java:85)
03-05 22:22:34.637: E/global(2987): at java.lang.Thread.stop(Thread.java:1391)
03-05 22:22:34.637: E/global(2987): at java.lang.Thread.stop(Thread.java:1356)
03-05 22:22:34.637: E/global(2987): at com.b00348312.workout.Splashscreen$1.run(Splashscreen.java:42)
03-05 22:22:54.597: D/dalvikvm(2987): GC_FOR_MALLOC freed 6061 objects / 319632 bytes in 63ms
03-05 22:22:54.607: D/AndroidRuntime(2987): Shutting down VM
03-05 22:22:54.607: W/dalvikvm(2987): threadid=1: thread exiting with uncaught exception (group=0x400259f8)
03-05 22:22:54.627: E/AndroidRuntime(2987): FATAL EXCEPTION: main
03-05 22:22:54.627: E/AndroidRuntime(2987): java.lang.IllegalStateException: Could not execute method of the activity
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.view.View$1.onClick(View.java:2072)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.view.View.performClick(View.java:2408)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.view.View$PerformClick.run(View.java:8817)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.os.Handler.handleCallback(Handler.java:587)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.os.Handler.dispatchMessage(Handler.java:92)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.os.Looper.loop(Looper.java:144)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.app.ActivityThread.main(ActivityThread.java:4937)
03-05 22:22:54.627: E/AndroidRuntime(2987): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 22:22:54.627: E/AndroidRuntime(2987): at java.lang.reflect.Method.invoke(Method.java:521)
03-05 22:22:54.627: E/AndroidRuntime(2987): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
03-05 22:22:54.627: E/AndroidRuntime(2987): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-05 22:22:54.627: E/AndroidRuntime(2987): at dalvik.system.NativeStart.main(Native Method)
03-05 22:22:54.627: E/AndroidRuntime(2987): Caused by: java.lang.reflect.InvocationTargetException
03-05 22:22:54.627: E/AndroidRuntime(2987): at com.b00348312.workout.convert.convertw(convert.java:44)
03-05 22:22:54.627: E/AndroidRuntime(2987): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 22:22:54.627: E/AndroidRuntime(2987): at java.lang.reflect.Method.invoke(Method.java:521)
03-05 22:22:54.627: E/AndroidRuntime(2987): at android.view.View$1.onClick(View.java:2067)
03-05 22:22:54.627: E/AndroidRuntime(2987): ... 11 more
03-05 22:22:54.627: E/AndroidRuntime(2987): Caused by: java.lang.NumberFormatException: unable to parse '' as integer
03-05 22:22:54.627: E/AndroidRuntime(2987): at java.lang.Integer.parseInt(Integer.java:412)
03-05 22:22:54.627: E/AndroidRuntime(2987): at java.lang.Integer.parseInt(Integer.java:382)
03-05 22:22:54.627: E/AndroidRuntime(2987): ... 15 more