2016-08-28 10 views
0

私は単純な電卓を作ろうとしていましたが、何らかの理由で結果を得ることができません。
アプリは動作しますが、ボタンを押すと、意図したとおりのポップアップ結果が表示されません。Androidスタジオのアプリに関する問題

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.view.View.OnClickListener; 
import android.widget.Toast; 
public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
    private EditText number1EditText; 
    private EditText number2EditText; 
    private Button divideButton; 
    private Button multiplyButton; 
    private Button addButton; 
    private Button subtractButton; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     number1EditText = (EditText) findViewById(R.id.number1EditText); 
     number2EditText = (EditText) findViewById(R.id.number2EditText); 
     divideButton=(Button)findViewById(R.id.divideButton); 
     multiplyButton=(Button)findViewById(R.id.multiplyButton); 
     addButton=(Button)findViewById(R.id.addButton); 
     subtractButton=(Button)findViewById(R.id.subtractButton); } 
    public void onClick(View v){ 
     switch (v.getId()){ 
      case R.id.divideButton: 
       division(); 
       break; 
      case R.id.multiplyButton: 
       multiplication(); 
       break; 
      case R.id.addButton: 
       addition(); 
       break; 
      case R.id.subtractButton: 
       subtraction(); 
       break;} } 
    private void division(){ 
     String number1 = number1EditText.getText().toString(); 
     String number2 = number2EditText.getText().toString(); 
     int answer = Integer.parseInt(number1)/Integer.parseInt(number2); 
     Toast.makeText(this,String.valueOf(answer), Toast.LENGTH_LONG).show();} 
    private void multiplication(){ 
     String number1=number1EditText.getText().toString(); 
     String number2=number2EditText.getText().toString(); 
     int answer=Integer.parseInt(number1)*Integer.parseInt(number2); 
     Toast.makeText(this,String.valueOf(answer),Toast.LENGTH_LONG).show(); } 
    private void addition(){ 
     String number1=number1EditText.getText().toString(); 
     String number2=number2EditText.getText().toString(); 
     int answer = Integer.parseInt(number1) + Integer.parseInt(number2); 
     Toast.makeText(this,String.valueOf(answer), Toast.LENGTH_LONG).show(); } 
    private void subtraction(){ 
     String number1=number1EditText.getText().toString(); 
     String number2=number2EditText.getText().toString(); 
     int answer=Integer.parseInt(number1) - Integer.parseInt(number2); 
     Toast.makeText(this,String.valueOf(answer),Toast.LENGTH_LONG).show(); }} 
+1

私はOPは'アンドロイドを使用していると思い、関連するXMLレイアウトコード – Zoe

答えて

2

ソリューションは非常に簡単で、ここにある:

divideButton=(Button)findViewById(R.id.divideButton); 
multiplyButton=(Button)findViewById(R.id.multiplyButton); 
addButton=(Button)findViewById(R.id.addButton); 
subtractButton=(Button)findViewById(R.id.subtractButton); 

あなたはボタンがありますが、onCLickListener設定したことがないここ

コードがあります。このコードを追加:のonClick() `では、彼/彼女のレイアウトのボタンの定義:

divideButton.setOnClickListener(this); 
multiplyButton.setOnClickListener(this); 
addButton.setOnClickListener(this); 
subtractButton.setOnClickListener(this); 
+1

を追加してください。これは、onClickリスナの 'switch'ブロックを意味します。 –

+0

多分、そうではないかもしれません。 XMLコードが提供されていないので、これは問題のように見えます – Zoe

+0

私は 'switch'ブロックの存在から推論を導き出しました –

関連する問題