2012-12-05 61 views
1

int我是新來編程和Android。我正在嘗試一個簡單的應用程序,我卡住了!EditText使用Integer.parseInt

我有兩個editTexts(設置爲只接受數字)和一個按鈕。這個想法是在按下按鈕時顯示兩個用戶輸入的總和。但是,當我點擊模擬器中的按鈕時,我的應用程序停止工作,強制關閉。

任何幫助將不勝感激。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_prevailing_torque); 
    Button calculatePrevailing = (Button) findViewById(R.id.button_calculatePrevailing); 


    calculatePrevailing.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      TextView prevailingSetting = (TextView) findViewById(R.id.textViewSetting); 
      EditText editTextPrevailing = (EditText) findViewById(R.id.editTextPrevailing); 
      EditText editTextRecommended = (EditText) findViewById(R.id.editTextReccomended); 

      int p = Integer.parseInt(editTextPrevailing.getText().toString()); 
      int r = Integer.parseInt(editTextRecommended.getText().toString()); 

      prevailingSetting.setText(r+p); 
     } 
    }); 
} 

我看了看這裏的幾個類似的問題,但我一直沒能找到任何東西,我可以進一步比我已經做了實現。但我可能在錯誤的地方看。 謝謝!

+1

將錯誤日誌粘貼在這裏 – intrepidkarthi

+0

歡迎來到SO!在LogCat中拋出什麼錯誤?試試:.setText(Integer.toString(r + p)) –

回答

1

,因爲它需要一個的CharSequence你不能用一個整數使用的setText(),您必須使用

prevailingSetting.setText(String.valueOf(r+p)); 

或只是

prevailingSetting.setText(""+(r+p)); 
+0

謝謝!第一位工作很好。第二個返回10 + 20 = 1020。 –

+0

是啊,你實際上必須先做數學,所以它會盛行Setting.setText(「」+(r + p)); – Slickelito

0
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_prevailing_torque); 
    Button calculatePrevailing = (Button) findViewById(R.id.button_calculatePrevailing); 
    TextView prevailingSetting = (TextView) findViewById(R.id.textViewSetting); 
    EditText editTextPrevailing = (EditText) findViewById(R.id.editTextPrevailing); 
    EditText editTextRecommended =(EditText)findViewById(R.id.editTextReccomended); 

    calculatePrevailing.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 

     int p = Integer.parseInt(editTextPrevailing.getText().toString()); 
     int r = Integer.parseInt(editTextRecommended.getText().toString()); 
     int s = r+p; 
     prevailingSetting.setText(Integer.toString(s)); 


    } 
    }); 
+0

謝謝,這個作品也是! –

+0

如果它是有用的,請提出答案 – viks

0

好!如果這是您的問題,那麼首先將editText值轉換爲字符串,然後將其轉換爲像!

String str1=editTextPrevailing.getText().toString(); 
String str2=editTextRecommended.getText().toString(); 
int p = Integer.parseInt(str1); 
    int r = Integer.parseInt(str2); 
    int s = r+p; 
    prevailingSetting.setText(""+s);