2017-02-19 18 views
-1

私はアンドロイドスタジオとJavaに新しいので、文章を簡単にします。 私はこれに新しいので、電卓(2番目のプログラム)などの簡単なプログラムを作りたかったのです。 コードは次のとおりです。アンドロイドスタジオはエラーは表示されませんが、コードがクラッシュします

package com.example.mikus.calc; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 
    private static int task = 0; 
    private static String in1 = "0"; 
    private static String in2 = "0"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button bt1 = (Button) findViewById(R.id.bt1); 
     Button bt2 = (Button) findViewById(R.id.bt2); 
     Button bt3 = (Button) findViewById(R.id.bt3); 
     Button bt4 = (Button) findViewById(R.id.bt4); 
     Button bt5 = (Button) findViewById(R.id.bt5); 
     Button bt6 = (Button) findViewById(R.id.bt6); 
     Button bt7 = (Button) findViewById(R.id.bt7); 
     Button bt8 = (Button) findViewById(R.id.bt8); 
     Button bt9 = (Button) findViewById(R.id.bt9); 
     Button bt0 = (Button) findViewById(R.id.bt0); 
     Button btdot = (Button) findViewById(R.id.btdot); 
     Button btdevide = (Button) findViewById(R.id.btdevide); 
     Button bttimes = (Button) findViewById(R.id.bttimes); 
     Button btminus = (Button) findViewById(R.id.btminus); 
     Button btplus = (Button) findViewById(R.id.btplus); 
     Button btequals = (Button) findViewById(R.id.btequals); 
     final TextView txt = (TextView) findViewById(R.id.textView); 


     bt1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "1"; 
       txt.setText(text); 
      } 
     }); 

     bt2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "2"; 

       txt.setText(text); 
      } 
     }); 

     bt3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "3"; 

       txt.setText(text); 
      } 
     }); 

     bt4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "4"; 

       txt.setText(text); 
      } 
     }); 

     bt5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "5"; 

       txt.setText(text); 
      } 
     }); 

     bt6.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "6"; 

       txt.setText(text); 
      } 
     }); 

     bt7.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "7"; 

       txt.setText(text); 
      } 
     }); 

     bt8.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "8"; 

       txt.setText(text); 
      } 
     }); 

     bt9.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "9"; 

       txt.setText(text); 
      } 
     }); 

     bt0.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "0"; 

       txt.setText(text); 
      } 
     }); 

     btdot.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = txt.getText() + "."; 

       txt.setText(text); 
      } 
     }); 

     btequals.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int a = Integer.parseInt(in1); 
       in2 = txt.getText().toString(); 
       int b = Integer.parseInt(in2); 
       if(task == 1){ 
        txt.setText(a + b); 
       } 
       if(task == 2){ 
        txt.setText(a - b); 
       } 
       if(task == 3){ 
        txt.setText(a * b); 
       } 
       if(task == 4){ 
        txt.setText(a/b); 
       } 
      } 
     }); 

     btplus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       task = 1; 
       in1 = txt.getText().toString(); 
       txt.setText(""); 
      } 
     }); 

     btminus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       task = 2; 
       in1 = txt.getText().toString(); 
       txt.setText(""); 
      } 
     }); 

     bttimes.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       task = 3; 
       in1 = txt.getText().toString(); 
       txt.setText(""); 
      } 
     }); 


     btdevide.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       task = 4; 
       in1 = txt.getText().toString(); 
       txt.setText(""); 
      } 
     }); 
    } 
} 

私はアンドロイドのスタジオでそれをコンパイルし、それにはエラーがなく、私は自分の携帯電話上でそれを実行し、私は押したときに、それだけでクラッシュ等しい(私はしようとして追加し、don`ています。整数や小数点以下を小数点以下に追加することができないことを伝えてください。ちなみにどのボタンがどの名前に対応しているのか間違いはありません。レイアウトは携帯電話のデフォルト電卓と同じです。 BTは、ボタンの略で、番号または名前は、ボタンがあるか、それが

+0

また、ログ文字を投稿してください。cat 'toString' = txt.getText()。toString()+ "1"; ' – Redman

+0

なぜ" to "文字列型を処理しているので、取得したテキストをtxt.getText()から文字列型に変換します。私が何かについて間違っている場合は、コメントを投稿してください。 –

答えて

0

に何を書くようにしてください何を説明します

txt.setText(String.valueOf(a + b)); 

次に、あなたがあなたの式の文字列値を取得します、と設定することができますTextViewのテキストと同じです。

+0

これは問題を解決しました。だから私はそれが整数ではなく、画面に文字列型を出力することができますね。 –

+0

問題ありません。 setText()メソッドは文字列をパラメータとして受け取り、整数を渡すと失敗します。したがって、改造が必要でした。 – FJJ

関連する問題