2012-05-09 20 views
0

私はforegをクリックすると電卓のアプリケーションです。 9、私は星の行でnullポインタの例外を取得します。何がうまくいかないでしょうか?私は初心者です。 nullで何があった、それはinputように思えるからヌルポインタ例外デバッグ

nine.setOnClickListener(new OnClickListener() { 
       public void onClick(View arg0) { 
        String con= input.getText().toString();    
        handlenumber("9",con); ** 
       } 
private void handlenumber(String number,String com) ** 
    { 
     number=new String(); 
     com=new String(); 

     if(com.equals("0") || com.equals("") || r!=0){ 

      input.setText(number); **        
      r=0; 
     } 
     else 
      { 
      input.setText(com.concat(number));       
      } 
    } 

答えて

2

、あなたが/それを初期化し、それに割り当てることを確認してください。

また、handlenumberに渡される2つのパラメータがありますが、それらのパラメータを再割り当てする必要はありません。例えば行を削除します。

number=new String(); 
com=new String(); 
+0

OPは '.Here' number'はそれとしてNULLにすることはできません 'input.setText(数)でエラーを示しています'' 9 ''を' number'の値として渡すので、 'NullPointerException'が返されることはありません。 'number = new String();' – Nishant

+0

が原因である可能性がありますが、それは数値ではありえないので、 'input'でなければなりません。 'number = new String()'に問題はありません。 – MByD

+0

技術的には、 'number = new String()'を呼び出す際に問題がありますが、textviewのtext = nullを割り当てることができるため、クラッシュは発生しません。彼はただの価値を拭いているだけです。最も確かに '入力'はこの場合はヌルです – dymmeh

0

は、あなたのコードから以下の行を削除してください:

number=new String(); 
    com=new String(); 

private void handlenumber(String number,String com) ** 
{ 
    if(com.equals("0") || com.equals("") || r!=0){ 

     input.setText(number); **        
     r=0; 
    } 
    else 
     { 
     input.setText(com.concat(number));       
     } 
}