2017-10-11 35 views
0

(同じボタンが動作しませんでした)アンドロイドスタジオで電卓を作成します。等価ボタンをクリックすると、アプリケーションがクラッシュするが、エラーメッセージは表示されませんでした。他のボタンは正常に動作しますが、私の等しボタンが機能しなかった理由を理解できませんでした。クティが一つだけOnClickListenerを保つので、心の中で彼のアドバイスを保つために、その優れた、示唆したように<Android>は、私は、Android Studioで簡単な電卓を作成していますが、同等のボタンが動作しませんでした

これは私のMainActivity.java

以下
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Button; 
import android.widget.EditText; 
import android.view.View; 
public class MainActivity extends AppCompatActivity { 
private EditText showNum; 
private Button one; 
private Button two; 
private Button three; 
private Button four; 
private Button five; 
private Button six; 
private Button seven; 
private Button eight; 
private Button nine; 
private Button zero; 
private Button divide; 
private Button multiple; 
private Button minus; 
private Button equal; 
private Button dot; 
private Button plus; 
private Button clear; 
private Boolean addButton, multipleButton, minusButton, divideButton; 
Float value, currentValue; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    showNum=(EditText) findViewById(R.id.editView); 
    one = (Button)findViewById(R.id.button1); 
    two = (Button)findViewById(R.id.button2); 
    three = (Button)findViewById(R.id.button3); 
    four = (Button)findViewById(R.id.button4); 
    five = (Button)findViewById(R.id.button5); 
    six = (Button)findViewById(R.id.button6); 
    seven = (Button)findViewById(R.id.button7); 
    eight = (Button)findViewById(R.id.button8); 
    nine = (Button)findViewById(R.id.button9); 
    zero = (Button)findViewById(R.id.button0); 
    divide = (Button)findViewById(R.id.buttonDivide); 
    multiple = (Button)findViewById(R.id.buttonMultiple); 
    minus = (Button)findViewById(R.id.buttonMinus); 
    equal = (Button)findViewById(R.id.buttonEqual); 
    dot = (Button)findViewById(R.id.buttonDot); 
    plus = (Button)findViewById(R.id.buttonPlus); 
    clear = (Button)findViewById(R.id.buttonC); 

    clear.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(""); 
     } 
    }); 
    zero.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"0"); 
     } 
    }); 
    one.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"1"); 
     } 
    }); 
    two.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"2"); 
     } 
    }); 
    three.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"3"); 
     } 
    }); 
    four.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"4"); 
     } 
    }); 
    five.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"5"); 
     } 
    }); 
    six.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"6"); 
     } 
    }); 
    seven.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"7"); 
     } 
    }); 
    eight.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"8"); 
     } 
    }); 
    nine.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"9"); 
     } 
    }); 
    dot.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      showNum.setText(showNum.getText()+"."); 
     } 
    }); 
    divide.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      value = Float.parseFloat(showNum.getText()+""); 
      divideButton=true; 
      showNum.setText(null); 

     } 
    }); 
    multiple.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      if(showNum==null){ 
       showNum.setText(""); 
      } 
      else{ 
       value = Float.parseFloat(showNum.getText()+""); 
       multipleButton=true; 
       showNum.setText(null); 
      } 


     } 
    }); 
    plus.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      value = Float.parseFloat(showNum.getText()+""); 
      addButton=true; 
      showNum.setText(null); 

     } 
    }); 
    minus.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      value = Float.parseFloat(showNum.getText()+""); 
      minusButton=true; 
      showNum.setText(null); 

     } 
    }); 


    equal.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      currentValue = Float.parseFloat(showNum.getText()+""); 
      if (divideButton) { 
       showNum.setText(value/currentValue + ""); 
       divideButton = false; 
       Log.i("gina", "b"+divideButton); 
      } 
      if (multipleButton){ 
       showNum.setText(value * currentValue + ""); 
       multipleButton = false; 
      } 
      if (addButton){ 
       showNum.setText(value+currentValue + ""); 
       addButton = false; 
      } 
      if (minusButton){ 
       showNum.setText(value-currentValue + ""); 
       minusButton = false; 
      } 
     } 
    }); 


} 

} 

ですが、私のactivity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.iu.hsiaoyuanwang.proficiency2.MainActivity"> 
<EditText 
    android:id="@+id/editView" 
    android:layout_alignParentTop="true" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:padding="35dp" 
    android:textSize="30sp" 
    android:gravity="top|center" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/editView" 
    android:orientation="vertical" 
    android:id="@+id/linear1"> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

     <Button 
      android:id="@+id/button7" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="7" 
      android:textSize="20dp" /> 

     <Button 
      android:id="@+id/button8" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="8" 
      android:textSize="20dp" 
      /> 

     <Button 
      android:id="@+id/button9" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:textSize="20dp" 
      android:text="9" /> 
     <Button 
      android:id="@+id/buttonDivide" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="÷" 
      android:textSize="20dp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

     <Button 
      android:id="@+id/button4" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="4" 
      android:textSize="20dp" /> 

     <Button 
      android:id="@+id/button5" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="5" 
      android:textSize="20dp" 
      /> 

     <Button 
      android:id="@+id/button6" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:textSize="20dp" 
      android:text="6" /> 
     <Button 
      android:id="@+id/buttonMultiple" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="x" 
      android:textSize="20dp" /> 
    </LinearLayout> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <Button 
       android:id="@+id/button1" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="1" 
       android:textSize="20dp" /> 

      <Button 
       android:id="@+id/button2" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="2" 
       android:textSize="20dp" 
       /> 

      <Button 
       android:id="@+id/button3" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:textSize="20dp" 
       android:text="3" /> 
      <Button 
       android:id="@+id/buttonMinus" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="-" 
       android:textSize="20dp" /> 
     </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

     <Button 
      android:id="@+id/button0" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="0" 
      android:textSize="20dp" /> 

     <Button 
      android:id="@+id/buttonDot" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="." 
      android:textSize="20dp" 
      /> 

     <Button 
      android:id="@+id/buttonEqual" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:textSize="20dp" 
      android:text="=" /> 
     <Button 
      android:id="@+id/buttonPlus" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="+" 
      android:textSize="20dp" /> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

     <Button 
      android:id="@+id/buttonC" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:text="C" 
      android:textSize="20dp" /> 

    </LinearLayout> 


</LinearLayout> 

</RelativeLayout> 
+0

のブール値を使用します。正確なエラーが表示されます。 –

答えて

0

です。 addButtonブールは常に偽であるとき

ブールは、オブジェクトである真か偽ではないので、文if(addButton)addButton.booleanValue()を使用してみてくださいまたはあなたがアンドロイドスタジオを使用している場合は、あなたのアプリケーションをデバッグするときにアンドロイドモニター]タブを開いてみてください代わりに、ブール

+0

"ブール値"を "ブール値"に変更しました。どうもありがとうございます! –

+0

これは受け入れられた答えでなければなりません。同様の問題があれば、他の人が正しい答えを見つけやすくなります。 –

関連する問題