不幸的是,app已经停止Android Studio

时间:2015-08-18 08:59:27

标签: java android android-studio onclicklistener

我是android studio编程的新手。我有一个应用程序,但当我想启动它时它会停止。起初我只有一个Button和一个onclicklistener,everthing工作正常。由于我有一个onlicklistener的第二个按钮,不幸的是app停止了。我的代码有什么问题?谢谢你的帮助。

主要活动:

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import de.example.einheitenumrechnergradfahrenheit.R;

public class MainActivity extends ActionBarActivity {

    Button berechnenbutton;
    Button button1;
    EditText eingabegrad;
    TextView ergebnisanzeige;
    double ergebnis;




    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        eingabegrad = (EditText) findViewById(R.id.editText1);
        ergebnisanzeige = (TextView) findViewById(R.id.textView3);
        berechnenbutton = (Button) findViewById(R.id.button);
        berechnenbutton.setOnClickListener((OnClickListener) this);
        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener((OnClickListener) this);}



            public void onClick(View v) {

                switch (v.getId()) {


                    case R.id.button:
                        if (eingabegrad.length() == 0) {
                            ergebnisanzeige.setText("Keine Eingabe erfolgt");
                        } else {
                            //Formel: Grad Celsius in Fahrenheit = ((Celsius *9)/5)+32
                            ergebnis = ((Double.parseDouble(eingabegrad.getText().toString()) / 1.8) - 32);
                            ergebnisanzeige.setText(eingabegrad.getText() + "  Grad Fahrenheit sind"
                                    + " umgerechnet " + Double.toString(ergebnis) + " Grad Celsius");
                        }
                        break;


                    case R.id.button1:
                        if (eingabegrad.length() == 0) {
                            ergebnisanzeige.setText("Keine Eingabe erfolgt");
                        } else {
                            //Formel: Grad Celsius in Fahrenheit = ((Celsius *9)/5)+32
                            ergebnis = ((Double.parseDouble(eingabegrad.getText().toString()) * 1.8) + 32);
                            ergebnisanzeige.setText(eingabegrad.getText() + "  Grad Celsius sind"
                                    + " umgerechnet " + Double.toString(ergebnis) + " Grad Fahrenheit");
                        }
                        break;



                    default:
                        break;
                }

            };


        }

1 个答案:

答案 0 :(得分:1)

您的活动应实施OnCLickListener,您的onClick方法必须使用@Override进行注释。

试试这个:

public class MainActivity extends ActionBarActivity implements View.OnClickListener {

    //omitted for clarity


    @Override
    public void onClick(View v) {

        //omitted for clarity

    }