2017-03-12 10 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を追加しようとしています。 私は2つのEditTextフィールドと1つのボタンを持っています。私はボタンが私のコード

活動の一つである。ここの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

すでに 'toString()'の文字列がある場合、 'String.valueOf'は冗長です。 –

+0

合意...ありがとう – rafsanahmad007

+0

まだ動作しません.2番目のアクティビティでは、番号を取得するにはどうすればいいですか? – Mrkle

1

String.valueOf(oneNumber)は基本的に(私は確信しているとして、あなたが考え出した)oneNumber.toString()、同じである:あなたはそれはあなたの第二の活動で

を使用して結果を得るから文字列を取得する必要がありますボックス内のテキストと同じではありません。

おそらくoneNumber.getText().toString()を使用することを意味します。

関連する問題