2016-08-19 8 views
0

Androidコーディングの学習を始めたばかりです。私はJavaの基礎を理解しています。ボタンとOnclickListenersについて学んだので、ボタンを使用して電卓を設計する簡単なプログラムを開発することを考えました。私の論理が正しいなら私を助けてください。 beqボタン)と等しいと機能しません!Androidでの初心者 - OnclickListeners

int a, b, total,OP; 
    Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, badd, bsub, bmul, bdiv, bclr, beq; 
    EditText et; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     b1 = (Button) findViewById(R.id.b1); 
     b2 = (Button) findViewById(R.id.b2); 
     b3 = (Button) findViewById(R.id.b3); 
     b4 = (Button) findViewById(R.id.b4); 
     b5 = (Button) findViewById(R.id.b5); 
     b6 = (Button) findViewById(R.id.b6); 
     b7 = (Button) findViewById(R.id.b7); 
     b8 = (Button) findViewById(R.id.b8); 
     b9 = (Button) findViewById(R.id.b9); 
     b0 = (Button) findViewById(R.id.b0); 
     badd = (Button) findViewById(R.id.add); 
     bsub = (Button) findViewById(R.id.sub); 
     bmul = (Button) findViewById(R.id.div); 
     bdiv = (Button) findViewById(R.id.mul); 
     bclr = (Button) findViewById(R.id.clr); 
     beq = (Button) findViewById(R.id.eq); 
     et = (EditText) findViewById(R.id.et); 

    b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("1"); 
      } else { 

       et.append("1"); 
      } 
     } 
    }); 

    b2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("2"); 
      } else { 

       et.append("2"); 
      } 
     } 
    }); 
    b3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("3"); 
      } else { 

       et.append("3"); 
      } 
     } 
    }); 
    b4.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("4"); 
      } else { 

       et.append("4"); 
      } 
     } 
    }); 
    b5.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("5"); 
      } else { 

       et.append("5"); 
      } 
     } 
    }); 
    b6.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("6"); 
      } else { 

       et.append("6"); 
      } 
     } 
    }); 
    b7.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("7"); 
      } else { 

       et.append("7"); 
      } 
     } 
    }); 
    b8.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("8"); 
      } else { 

       et.append("8"); 
      } 
     } 
    }); 
    b9.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 

       et.setText("9"); 
      } else { 

       et.append("9"); 
      } 
     } 
    }); 
    b0.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et.equals("")) { 
       et.setText("0"); 
      } 
      else { 
       et.append("0"); 
      } 
     } 
    }); 
    badd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int a = Integer.parseInt(et.getText().toString()); 
      et.setText(""); 
      OP = 1; 
     } 
    }); 
    bsub.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int a = Integer.parseInt(et.getText().toString()); 
      et.setText(""); 
      OP = 2; 
     } 
    }); 
    bdiv.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int a = Integer.parseInt(et.getText().toString()); 
      et.setText(""); 
      OP = 3; 
     } 
    }); 
    bmul.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int a = Integer.parseInt(et.getText().toString()); 
      et.setText(""); 
      OP = 4; 
     } 
    }); 
    bclr.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      et.setText(""); 
      a=0; 
      b=0; 
      total=0; 
      OP=0; 
     } 
    }); 
    beq.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      switch (OP){ 
       case 1: 
        b= Integer.parseInt(et.getText().toString()); 
        total=a+b; 
        et.setText(String.format("%d",total)); 
        break; 
       case 2: 
        b= Integer.parseInt(et.getText().toString()); 
        total=a-b; 
        et.setText(String.format("%d",total)); 
        break; 
       case 3: 
        b= Integer.parseInt(et.getText().toString()); 
        total=a/b; 
        et.setText(String.format("%d",total)); 
        break; 
       case 4: 
        b= Integer.parseInt(et.getText().toString()); 
        total=a*b; 
        et.setText(String.format("%d",total)); 
        break; 
       } 
      } 
     }); 
    } 
} 
+0

bsub,badd,bdiv,bmul

int a = Integer.parseInt(et.getText().toString());は 'のonClick()' 'beq'のために、あなたは' total'の値を確認することができます。 'System.out.println(total);'を実行してください。結果は 'System.out'のlogcatにあります –

+0

あなたは次のうちの1つ以上を試みることができます。ブレークポイントを追加してデバッグします。スイッチの前にOP aとbの値をチェックするトーストを追加します。トーストを発行するためにデフォルトを追加します。トーストと同様にLogコールを使用することができます。私の推測では、OPは1,2,3、または4になっていないということです。 – MikeT

答えて

1

変更でa = Integer.parseInt(et.getText().toString());

+0

ありがとうございました! –

+0

アプリはうまく動作します。しかし、私が乗算をするとき、アプリは分割を行います。私が分裂をする時、それは倍増します。助言がありますか? –

+0

変更 'bmul =(ボタン)findViewById(R.id.div); bdiv =(ボタン)findViewById(R.id.mul); 'to' bdiv =(ボタン)findViewById(R.id.div); bmul =(ボタン)findViewById(R.id.mul); ' – abdelrhman