Код не работает, хотя раньше он работал - PullRequest
0 голосов
/ 05 марта 2012

Мне было интересно, может ли кто-нибудь помочь мне здесь. Я создаю приложение для 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

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Из вашего более позднего кода активности ... Проблема в том, что вы выполняете findViewById (), чтобы найти свои кнопки, несмотря на то, что вы не установили никакой раскладки для этого конкретного действия.

0 голосов
/ 05 марта 2012

Попробуйте сделать проект-> Очистить и восстановить.Если он работал раньше, и вы не редактировали его с момента последнего успешного запуска, очистка должна помочь.

...