【问题标题】:Unfortunately app has stopped Android Studio不幸的是,应用程序已停止 Android Studio
【发布时间】:2015-08-18 17:43:43
【问题描述】:

我是使用 android studio 编程的新手。我有一个应用程序,但是当我想启动它时它停止了。起初我只有一个 Button 和一个 onclicklistener,一切正常。由于我有第二个带有 onlicklistener 的按钮,因此该应用程序不幸停止了。我的代码有什么问题?感谢您的帮助。

主要活动:

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;
                }

            };


        }

【问题讨论】:

  • 发布您的 logcat 或错误消息
  • 在这里发布 logcat 非常有用。
  • berechnenbutton.setOnClickListener((OnClickListener) this); -> 而不是这个让你的活动实现 View.OnClickListerner 和 berechnenbutton.setOnClickListener(this)
  • 只是小费。始终在您的应用中扩展 AppCompatActivity。 ActionBarActivity 已弃用。

标签: java android android-studio onclicklistener


【解决方案1】:

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

试试这个:

public class MainActivity extends ActionBarActivity implements View.OnClickListener {

    //omitted for clarity


    @Override
    public void onClick(View v) {

        //omitted for clarity

    }

【讨论】:

  • @Override 不是必需的,它只是在编译时通知您是否覆盖方法的签名确实发生了变化,并且没有覆盖可能
  • 欢迎您。如果你愿意,你可以接受这个答案并投票:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多