2012-12-01 2 views
1

이렇게하려면 사용자가 주 활동에서 제공되는 2 개의 편집 문구에 입력 된 2 개의 정수 값을 가져와 함께 추가하려고합니다. 그런 다음 안드로이드 애플리케이션을 2nd Activity로 전환하고 EditText 상자에 이전 (메인) Activity의 2 EditText 상자에 입력 된 2 개의 값의 합계를 표시합니다.1 액티비티에서 값을 가져 와서 두 번째 액티비티로 보내기

저는 제대로 된 것 같지만 두 번째 활동에서 합계를 구하는 방법을 확실히 알지 못합니다. 나는 번들 등으로 어지럽 혀서 시도했지만, 나는 아직도 그것을 이해할 수 없다.

* * 몇 가지 제안 사항을 반영하기 위해 재 편집되었습니다. 두 번째 활동은 여전히 ​​전체를 표시하지 않습니다 ... 나는 일종의 변환 오류라고 생각합니다.

*** 나는 그것이 2 Activity..the 함께 할 수있는 뭔가가 거의 확실 해요 최초의 권리 나에게

** 완벽한 외모! 전환 오류였습니다. 모든 도움을 주셔서 감사합니다 : D

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 


public class MainActivity extends Activity 
{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

    public void OnClick(View v) //android:onClick="OnClick" added to activity_main.xml for this button 
    { 
     Intent intent = new Intent(MainActivity.this, Summation.class); 
    EditText v1 = (EditText)findViewById(R.id.editText1); 
    EditText v2 = (EditText)findViewById(R.id.editText2); 
    int first = Integer.parseInt(v1.getText().toString()); 
    int second = Integer.parseInt(v2.getText().toString()); 
    String sum = String.valueOf(first + second); 
    intent.putExtra("sum", sum); 
    startActivity(intent);   
    } 
} 

두 번째 작업 클래스

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.EditText; 

public class Summation extends Activity 
{ 
    //Second Activity 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_2);   
     String sum = (getIntent().getExtras().getString("sum")); 
     EditText addsum = (EditText)findViewById(R.id.editText1); 
     addsum.setText(sum); 

    } 
} 

답변

1

당신은 당신의 int 값을 할당 할 수 없습니다 edittext에서 바로.

EditText eText1 = (EditText) findViewById(R.id.yourfirstedittext) 

과 같은 편집 텍스트를 지정해야합니다. 그런 다음 값

int firstNum = Integer.parseInt(eText1.getValue.toString())

두 번째와 같은 물론

를 얻을. 이 두 가지를 함께 추가하면 intent.putExtra("sume, sum)으로 간단하게 전달할 수 있습니다. 그럼 당신은 당신이이 방법을하고 intString 값을 얻을 필요가 것 int로 전달하는 경우 getIntent()

Intent ci = getIntent(); 
final int sum = ci.getIntExtra("sum", yourDefaultIntValue) 

와 두 번째 Activity에 그들을 얻을. 하지만 만약 당신이 String으로 합격하면 괜찮습니다

+0

필자가 findViewByID를 의미하지 않는다면 findValueByID가 없다는 것을 알고 있습니다. 또는 적어도 일식 그것을 또는 Google에 대한 모든 문서를 찾을 수 없습니다. – user1780149

+0

예, 미안 해요, 네 아이들이 뛰어 다니고 있어요. 그게 내 뜻이에요. – codeMagic

+0

더 좋아 보이지만 니가 필요하다는 것을 모르겠다. 'intent.setClass (MainActivity.this, Summation.class)' 이리. 당신은 당신의 의도 선언에서 그것을 설정할 수 있어야합니다. 'Intent intent = new Intent (MainActivity.this, Summation.class' – codeMagic

0

글쎄, 모두 거의 완벽합니다,하지만 당신은 들여 쓰기에 번들을 첨부하지 않고이 경우 번들로 값을 추가하는 것은 무의미 하나

intent.putExtras(bundle); 

을 추가하거나 추가 코드를 사용하지 않는 코드를 만드는 것이 아니라 볼 수 있도록 단계 : 당신을 잊었 같은 :

Intent intent = new Intent(); 
    int value1 =(R.id.editText1); 
    int value2 =(R.id.editText2); 
    double sum = (value1 + value2); 
    intent.putExtra("sum", sum); 
    intent.setClass(MainActivity.this, Summation.class); 
    startActivity(intent); 
-1

너무 가깝습니다. 첫 번째 활동에서 startActivity(intent) 전에이 권리를 어떻게 기억

intent.putExtras(bundle); 

그런 다음 두 번째 활동 클래스의에서 onCreate 메소드의 끝에서 시도 :

String valu = getIntent().getExtras().getString("sum"); 
EditText addsum = (EditText)findViewById(R.id.editText1); 
addsum.setText(valu, TextView.BufferType.NORMAL); 
+0

누군가 내 대답에 왜 그렇게 심하게 틀렸는 지 궁금합니다. 누군가 제가 실수 한 것을 지적 해 주시겠습니까? – ZeroOne

+0

나는 아직도 (TextView.BufferType이 무엇인지 잘 모르겠다.NORMAL)은 그것을 사용하는 방법 또는 사용법입니다. 따라서 귀하의 코드를 사용하지 않았지만 귀하의 답변이 좋지 않다고 생각하지는 않습니다. 내가 충분한 담당자가 있다면 나는 왜 그것이 downvoted 롤 모르겠어요로 다시 걸릴거야 – user1780149

+0

[EditText 설명서] (http://developer.android.com/reference/android/widget/EditText.html) :'이 TextView가 표시 할 텍스트 (setText (CharSequence) 참조)를 설정하고 스타일이 적용 가능한/허용 가능한 버퍼에 저장되는지 여부와 편집 가능한지 여부도 설정합니다. 열거 형에 사용할 수있는 값은 "EDITABLE"입니다. "NORMAL"및 "SPANNABLE". 방금 하나를 선택했지만 다른 기능이 필요할 경우 변경할 수 있습니다. 기본적으로 요점은 번호를 보여주기 위해 EditText를 만드는 것입니다. :) – ZeroOne

관련 문제