0

私はAndroidを学んでいるので、物事をシンプルに保ちたいと思っています。

2つの数値を追加し、結果を1つの編集ボックスに表示する必要があります。2番目の数値を追加するには、最初の数値を変数に格納します。次に、この変数を使用して、編集テキストの2番目の番号を追加します。

以下のxmlとJavaコードを見ると、より良いアイデアが得られます。前もって感謝します。

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
  <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/relativeLayout1" android:layout_gravity="bottom">
    <Button android:text="1" android:padding="20px" android:layout_marginTop="38dp" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button1" android:layout_alignParentLeft="true"></Button>
    <Button android:text="2" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/button1" android:id="@+id/button2" android:layout_toRightOf="@+id/button1"></Button>
    <Button android:text="3" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/button2" android:id="@+id/button3" android:layout_toRightOf="@+id/button2"></Button>
    <Button android:text="4" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/button3" android:id="@+id/button4" android:layout_toRightOf="@+id/button3"></Button>
    <Button android:text="5" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button5" android:layout_below="@+id/button1" android:layout_alignParentLeft="true"></Button>
    <Button android:text="6" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/button5" android:layout_alignLeft="@+id/button2" android:id="@+id/button6"></Button>
    <Button android:text="7" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/button6" android:layout_alignLeft="@+id/button3" android:id="@+id/button7"></Button>
    <Button android:text="8" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignLeft="@+id/button4" android:id="@+id/button8" android:layout_below="@+id/button4"></Button>
    <Button android:text="=" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignLeft="@+id/button11" android:id="@+id/button15" android:layout_below="@+id/button12"></Button>
<Button android:text="clear" android:layout_alignRight="@+id/button8" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignBottom="@+id/button15" android:layout_alignLeft="@+id/button12" android:id="@+id/button16" android:layout_below="@+id/button12"></Button>
    <Button android:text="-" android:layout_alignRight="@+id/button8" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button12" android:layout_below="@+id/button8"></Button>
    <Button android:text="+" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_above="@+id/button15" android:layout_toLeftOf="@+id/button16" android:id="@+id/button11"></Button>
    <Button android:text="/" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_toLeftOf="@+id/button7" android:layout_alignTop="@+id/button15" android:id="@+id/button14"></Button>
    <Button android:text="0" android:layout_alignRight="@+id/button14" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_above="@+id/button14" android:id="@+id/button0"></Button>
    <Button android:text="*" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_toLeftOf="@+id/button10" android:layout_alignTop="@+id/button14" android:id="@+id/button13"></Button>
    <Button android:text="9" android:padding="20px" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_above="@+id/button13" android:id="@+id/button9" android:layout_alignParentLeft="true"></Button>
<EditText android:id="@+id/editText1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_below="@+id/button14"></EditText>
  </RelativeLayout>
</LinearLayout>

Javaコード

package calci.tor;
import android.R.integer;
import android.R.string;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class CalculatorActivity extends Activity {
    /** Called when the activity is first created. */
    public EditText display;  
    TextView edt;
    Integer c;
    String a="",b;
    //int d=0;

    Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    edt=(EditText)findViewById(R.id.editText1);
    b1=(Button)findViewById(R.id.button1);
    b2=(Button)findViewById(R.id.button2);
    b3=(Button)findViewById(R.id.button3);
    b4=(Button)findViewById(R.id.button4);
    b5=(Button)findViewById(R.id.button5);
    b6=(Button)findViewById(R.id.button6);
    b7=(Button)findViewById(R.id.button7);
    b8=(Button)findViewById(R.id.button8);
    b9=(Button)findViewById(R.id.button9);
    b10=(Button)findViewById(R.id.button0);
    b11=(Button)findViewById(R.id.button11);
    b12=(Button)findViewById(R.id.button12);
    b13=(Button)findViewById(R.id.button13);
    b14=(Button)findViewById(R.id.button14);
    b15=(Button)findViewById(R.id.button15);
    b16=(Button)findViewById(R.id.button16);



    b1.setOnClickListener(new View.OnClickListener() 
    {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            a=edt.getText().toString();
            edt.setText(a+ "1");



        }
    });

    b2.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    a=edt.getText().toString();
                    edt.setText(a+ "2");
                                        }
            });

    b3.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    a=edt.getText().toString();
                    edt.setText(a+ "3");
                                        }
            });


    b4.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    a=edt.getText().toString();
                    edt.setText(a+ "4");

                                        }
            });


    b5.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {

                    a=edt.getText().toString();
                    edt.setText(a+ "5");

                }
            });


    b6.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    a=edt.getText().toString();
                    edt.setText(a+ "6");
                                        }
            });


    b7.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {

                    a=edt.getText().toString();
                    edt.setText(a+ "7");
                                        }
            });


    b8.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    a=edt.getText().toString();
                    edt.setText(a+ "8");

                }
            });


    b9.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    a=edt.getText().toString();
                    edt.setText(a+ "9");
                                        }
            });


    b10.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    a=edt.getText().toString();
                    edt.setText(a+ "0");

                }
            });


    b11.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                       String aa;
                      aa=a;      //To Store the first number displayed in edit text  to aa
                edt.setText("+");
                    edt.setText("");
                    //d=1;
                    c=Integer.parseInt(aa)+Integer.parseInt(a);




                }
            });





    b12.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    edt.setText("-");

                }
            });


    b13.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    edt.setText("*");
                }
            });



    b14.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    edt.setText("/");
                }
            });


    b15.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    //int c=Integer.parseInt(a)+Integer.parseInt(b);
                    //edt.setText(c);
                    display.setText(c);
                }
            });


    b16.setOnClickListener(new View.OnClickListener()
    {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                edt.setText("");
                }
    });
    }
}
4

3 に答える 3

1

電卓に(/が)なく、負の数の入力が許可されていない場合、数値と演算の定数入力を計算する単純なアルゴリズムは次のように機能します。

結果を表す 1 つの変数 (おそらく EditText の各ステップを表示したい) と、未完成の結果をバッファリングする 1 つの変数があります。

操作が*orの場合/: バッファに適用します

演算が+orの場合-: 結果にバッファを追加、新しい入力でバッファを上書き

2 * 4 + 3 + 5 * 2 * 3 - 1 + 2

  • 最初は最終結果 = 0、バッファ = 1

  • 2-> 結果 = 0、バッファ = 2 (ここで注意してください。最初のステップを と解釈しました*2)

  • * 4-> 結果 = 0、バッファ = (2*4) = 8
  • + 3-> 結果 = (0+8) = 8、バッファ = 3
  • + 5-> 結果 = (8+3) = 11、バッファ = 5
  • * 2-> 結果 = 11、バッファ = (5*2) = 10
  • * 3-> 結果 = 11、バッファ = (10*3) = 30
  • - 1-> 結果 = (11+30) = 41、バッファ = -1
  • + 2-> 結果 = (41-1) = 40、バッファ = 2

-> 最後に (例: を押したとき=) 両方を足し合わせる: Answer = 42

于 2012-04-23T12:58:44.197 に答える
1
//Below having correct programming .
//I did some changes in your code.This code was working nicely try this.
//`import android.os.Bundle;
import android.R.integer;
import android.R.string;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

 public EditText display;  
TextView edt;
Integer c,d,r,b;
String a="0",aa;


Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16;

@Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    edt=(EditText)findViewById(R.id.editText1);
    b1=(Button)findViewById(R.id.button1);
    b2=(Button)findViewById(R.id.button2);
    b3=(Button)findViewById(R.id.button3);
    b4=(Button)findViewById(R.id.button4);
    b5=(Button)findViewById(R.id.button5);
    b6=(Button)findViewById(R.id.button6);
    b7=(Button)findViewById(R.id.button7);
    b8=(Button)findViewById(R.id.button8);
    b9=(Button)findViewById(R.id.button9);
    b10=(Button)findViewById(R.id.button0);
    b11=(Button)findViewById(R.id.button11);
    b12=(Button)findViewById(R.id.button12);
    b13=(Button)findViewById(R.id.button13);
    b14=(Button)findViewById(R.id.button14);
    b15=(Button)findViewById(R.id.button15);
    b16=(Button)findViewById(R.id.button16);



    b1.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
             // TODO Auto-generated method stub

             a=edt.getText().toString();
             a=a+"1";
             edt.setText(a);

         }
     });

     b2.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     // TODO Auto-generated method stub

                     a=edt.getText().toString();
                     a=a+"2";
                     edt.setText(a);
                                         }
             });

     b3.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     a=edt.getText().toString();
                     a=a+"3";
                     edt.setText(a);
                                         }
             });


     b4.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     a=edt.getText().toString();
                     a=a+"4";
                     edt.setText(a);

                                         }
             });


     b5.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {

                     a=edt.getText().toString();
                     a=a+"5";
                     edt.setText(a);

                 }
             });


     b6.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     // TODO Auto-generated method stub

                     a=edt.getText().toString();
                     a=a+"6";
                     edt.setText(a);
                                         }
             });


     b7.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {

                     a=edt.getText().toString();
                     a=a+"7";
                     edt.setText(a);
                                         }
             });


     b8.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     // TODO Auto-generated method stub

                     a=edt.getText().toString();
                     a=a+"8";
                     edt.setText(a);

                 }
             });


     b9.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     // TODO Auto-generated method stub

                     a=edt.getText().toString();
                     a=a+"9";
                     edt.setText(a);
                                         }
             });


     b10.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     // TODO Auto-generated method stub

                     a=edt.getText().toString();
                     a=a+"0";
                     edt.setText(a);
                 }
             });


 b11.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {

                       aa=a; 
                       b=1;    
                       a="";
                       edt.setText("+");

                     edt.setText("");
          }
             });





     b12.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {

                     aa=a;
                     b=2;
                     a="";
                     edt.setText("-");
                     edt.setText("");

                 }
             });


     b13.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     aa=a;
                     b=3;
                     a="";
                     edt.setText("*");
                     edt.setText("");

                 }
             });



     b14.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     aa=a;
                     b=4;
                     a="";
                     edt.setText("/");
                     edt.setText("");

                 }
             });


     b15.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {

                     if(b==1){
                       c=Integer.parseInt(aa);

                       d=Integer.parseInt(a);             
                       r=c+d;
                     }
                     else
                     if(b==4){
                         c=Integer.parseInt(aa);
                       d=Integer.parseInt(a);
                       r=c/d; 
                     }else
                         if(b==2){
                             c=Integer.parseInt(aa);
                           d=Integer.parseInt(a);
                           r=c-d; 
                         }
                         else
                             if(b==3){
                                 c=Integer.parseInt(aa);
                               d=Integer.parseInt(a);
                               r=c*d; 
                             }
                     Toast.makeText(MainActivity.this, "Result is::"+r, 10000).show();
                     c=0;
                     b=0;
                     d=0;
                     a="";
                     aa="";
                     edt.setText("");
                 }
             });


     b16.setOnClickListener(new View.OnClickListener()
     {

                 public void onClick(View v) {
                     // TODO Auto-generated method stub

                 edt.setText("");
                 }
             });




 }`
于 2014-05-09T05:51:33.147 に答える
0

上記のコードはほぼ正しいものでしたが、そのプログラミングでは小さなロジックが欠落していました。ボタンをクリックすると、文字列値が「a」に保存されます。その後、演算子記号「a」をクリックすると、「aa」変数に格納されます。

例:

a="4";
aa=a;//aa="4"

//After you do like this below way .

c=Integer.parseInt(aa)+Integer.parseInt(a);
//In the above line c (storing integer values) = 4+4;
//a having "4" and aa="4".
于 2014-05-09T05:41:42.333 に答える