2017-03-12 138 views
-1

完全錯誤Android的錯誤java.lang.NumberFormatException

FATAL EXCEPTION: main 

       Process: com.intent.explicitintent, PID: 9871 
       java.lang.NumberFormatException: For input string: "android.support.v7.widget.AppCompatEditText{c41d17d VFED..CL. ........ 80,80-400,148 #7f0d0075 app:id/numberOne}" 
        at java.lang.Integer.parseInt(Integer.java:521) 
        at java.lang.Integer.parseInt(Integer.java:556) 
        at com.intent.explicitintent.MainActivity.add(MainActivity.java:40) 
        at com.intent.explicitintent.MainActivity$1.onClick(MainActivity.java:28) 
        at android.view.View.performClick(View.java:5610) 
        at android.view.View$PerformClick.run(View.java:22265) 
        at android.os.Handler.handleCallback(Handler.java:751) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

我想添加簡單addition.But這是行不通的。 我有兩個EditText字段和一個Button。我想要顯示在另一個活動的結果,當按鈕被點擊的TextView

這裏是我的代碼

活動一。

public class MainActivity extends AppCompatActivity { 
EditText oneNumber; 
EditText secondNumber; 
Button button; 

int e; 
int b; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    oneNumber = (EditText) findViewById(R.id.numberOne); 
    secondNumber = (EditText) findViewById(R.id.numberTwo); 
    button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      add(v); 
     } 
    }); 


} 


public void add(View view) { 


    int a = Integer.parseInt(String.valueOf(oneNumber)); 
    int b = Integer.parseInt(String.valueOf(secondNumber)); 
    int result = a + b; 
    Intent intent = new Intent(); 
    intent.putExtra("add", result); 
    intent.setClass(MainActivity.this, AnotherActivity.class); 
    startActivity(intent); 





} 

}

次活動

public class AnotherActivity extends AppCompatActivity { 
TextView total; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_another); 
    total = (TextView) findViewById(R.id.Total); 
    Bundle extras = getIntent().getExtras(); 
    String result = extras.toString(); 
    total.setText(result); 






    } 

} 

我想我搞砸了與EditText上得到整數和獲得的結果裏面TextView的另一個動作

任何幫助嗎?

回答

1

問題是在這裏:

int a = Integer.parseInt(String.valueOf(oneNumber)); 
int b = Integer.parseInt(String.valueOf(secondNumber)); 

它應該是:

int a = Integer.parseInt(oneNumber.getText().toString()); 
int b = Integer.parseInt(secondNumber.getText().toString()); 

oneNumberEditext。你需要得到的字符串從它

在你的第二個活動取得使用結果:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_another); 
    total = (TextView) findViewById(R.id.Total); 
    //get result 
    Intent intent = getIntent(); 
    int result = intent.getIntExtra("add", 0); 
    total.setText(String.valueOf(result)); 

    } 
+1

'String.valueOf'是多餘的,如果你已經擁有了從'的toString)的字符串('。 –

+0

同意...謝謝 – rafsanahmad007

+0

仍然無法正常工作。在第二項活動中,我應該如何寫入號碼? – Mrkle

1

String.valueOf(oneNumber)是基本相同oneNumber.toString(),這(我敢肯定,你想通了)是與盒子內的文字不一樣。

也許你的意思是使用oneNumber.getText().toString()代替。

相關問題