1

私は最近Android電卓用に設計しましたが、ディスプレイの名前はfakedisplayです。電卓用のバックスペースボタンを追加しています。コードは次のとおりです。

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

            clearCalcDisplay = DONT_CLEAR; 
            String str=Fakedisplay.getText().toString();
            if (str.length() >=1 ) { 
                str = str.substring(0, str.length() - 1);
                Fakedisplay.setText(str);
                };
            if (str.length() <1 ) {
                Fakedisplay.setText("0");
            }
    });   

私の質問はそれです

  1. 上記を試しましたが、1文字より長い入力で機能します。たとえば、145では14になり、14の場合は1になりますが、さらに押すと、プログラムは強制終了されます。なんで?

  2. そして、10進入力をどのように考慮するか?

この関数のためのより良いコードはありますか?

4

5 に答える 5

6

コードをに変更します

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

        clearCalcDisplay = DONT_CLEAR; 
        String str=Fakedisplay.getText().toString();
        if (str.length() >1 ) { 
            str = str.substring(0, str.length() - 1);
            Fakedisplay.setText(str);
            }
       else if (str.length() <=1 ) {
            Fakedisplay.setText("0");
        }
}); 
于 2012-09-01T12:54:13.797 に答える
0

両方のコードを組み合わせて、完璧なコードを取得しました

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


        String str=Fakedisplay.getText().toString();
        if (str.length() >=1 ) { 
            str = str.substring(0, str.length() - 1);
            Fakedisplay.setText(str);
            } else if (str.length() <=1 ) {
        Fakedisplay.setText("0");
    }
  }); 
于 2016-02-06T03:34:01.220 に答える