1

나는 2 개의 Activity가 있습니다. 나는하여 텍스트를 얻을 :textView에 표시 할 editText 값 가져 오기

save.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View v) { 

Toast.makeText(getApplicationContext(), "Saved Directory!",Toast.LENGTH_SHORT).show(); 

Intent intent = new Intent(NewCard.this, CardBox.class); 

EditText txtName = (EditText) findViewById(R.id.txtName); 
EditText txtCompany= (EditText) findViewById(R.id.txtCompany); 
EditText txtPhone= (EditText) findViewById(R.id.txtPhone); 
EditText txtMobile = (EditText) findViewById(R.id.txtMobile); 
EditText txtAddress = (EditText) findViewById(R.id.txtAddress); 
EditText txtEmail = (EditText) findViewById(R.id.txtEmail); 
EditText txtWebsite = (EditText) findViewById(R.id.txtWebsite); 
EditText txtTitle = (EditText) findViewById(R.id.txtTitle); 

String Name=txtName.getText().toString(), 
Company=txtCompany.getText().toString(), 
Phone=txtPhone.getText().toString(), 
Mobile=txtMobile.getText().toString(), Address=txtAddress.getText().toString(), 
Email=txtEmail.getText().toString(), Website=txtWebsite.getText().toString(), 
Title=txtTitle.getText().toString(); 

intent.putExtra(EXTRA_MESSAGE, Name); 
intent.putExtra(EXTRA_MESSAGE, Company); 
intent.putExtra(EXTRA_MESSAGE, Phone); 
intent.putExtra(EXTRA_MESSAGE, Mobile); 
intent.putExtra(EXTRA_MESSAGE, Address); 
intent.putExtra(EXTRA_MESSAGE, Email); 
intent.putExtra(EXTRA_MESSAGE, Website); 
intent.putExtra(EXTRA_MESSAGE, Title); 
startActivity(intent); 
} 
}); 

그리고 난에 의해 텍스트 뷰에 설정 : 내가 '저장'버튼을 클릭 마지막 때

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

    // Get the message from the intent 
    Intent intent; 
    intent = getIntent(); 
    String Name = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Company = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Phone = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Mobile = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Address = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Email = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Website = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
    String Title = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 

    //Display the message in textview 
    TextView stv1 = (TextView) findViewById(R.id.stv1); 
    TextView stv2 = (TextView) findViewById(R.id.stv2); 
    TextView stv3 = (TextView) findViewById(R.id.stv3); 
    TextView stv4 = (TextView) findViewById(R.id.stv4); 
    TextView stv5 = (TextView) findViewById(R.id.stv5); 
    TextView stv6 = (TextView) findViewById(R.id.stv6); 
    TextView stv7 = (TextView) findViewById(R.id.stv7); 
    TextView stv8 = (TextView) findViewById(R.id.stv8); 

    stv1.setText(Name); 
    stv2.setText(Company); 
    stv3.setText(Phone); 
    stv4.setText(Mobile); 
    stv5.setText(Address); 
    stv6.setText(Email); 
    stv7.setText(Website); 
    stv8.setText(Title); 

. 새 활동이 열리고 stv8.setText (Title)로 설정된 textView가 모두 표시됩니다.

무엇이 잘못 되었나요? 오류가 없습니다!

+0

당신이 내 게시물의 제안을 시도 않았다 당신이 텍스트 뷰의 값을 넣어 다른 활동에서 코드

Bundle data=new Bundle(); data.putString("name",Name); data.putString("company",Company); data.putString("email",Email); data.putString("addr",Address); data.putString("title",Title); data.putString("web",Website); data.putString("ph",Phone); intent.putExtra("bun",data); 

에게 다음 추가 ?? – Raghunandan

+0

나는 먼저 당신의 것을 구현했지만, 나는 오류없이 텍스트를 설정할 수 없었다. 하지만 내가 누락 된 부분이 있기 때문이라고 생각합니다. 다음 나는 작동하고있는 가장 짧은 제안을 아래에 시도했다. 하지만이 코딩을 여러 번 수행하기 때문에 다시 구현하려고합니다. 고마워요! – Umitk

답변

1

모든 키는 동일합니다 NewCard.EXTRA_MESSAGE. 이름에서 제목까지의 모든 문자열이 같은 이유입니다. 그런 다음 당신은 당신이 NewCard

public final static String EXTRA_NAME = "com.example.myfirstapp.NAME"; 
public final static String EXTRA_COMPANY = "com.example.myfirstapp.COMPANY"; 
... // similarly for others 

그런

intent.putExtra (EXTRA_NAME, 이름)에 필요한 어떤

String Name = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Company = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Phone = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Mobile = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Address = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Email = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Website = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 
String Title = intent.getStringExtra(NewCard.EXTRA_MESSAGE); 

이 다른 키

intent.putExtra(EXTRA_MESSAGE, Name); 
intent.putExtra(EXTRA_MESSAGE, Company); 
intent.putExtra(EXTRA_MESSAGE, Phone); 
intent.putExtra(EXTRA_MESSAGE, Mobile); 
intent.putExtra(EXTRA_MESSAGE, Address); 
intent.putExtra(EXTRA_MESSAGE, Email); 
intent.putExtra(EXTRA_MESSAGE, Website); 
intent.putExtra(EXTRA_MESSAGE, Title); 

이 필요합니다; intent.putExtra (EXTRA_COMPANY, Company); ... // 유사하게 다른 사람 에 대한 다음 SecondActivity

String Name = intent.getStringExtra(NewCard.EXTRA_NAME); 
String Name = intent.getStringExtra(NewCard.EXTRA_COMPANY); 
... // similarly for others 

에 당신이

http://developer.android.com/training/basics/firstapp/starting-activity.html

을 따라 생각하지만 당신은 또한 확장 추가 다른 키

public Intent putExtra (String name, String value)

필요 데이터를 전송합니다. 이름은 응용 프로그램 com.android.contacts이 "com.android.contacts.ShowAll".

매개 변수

name The name of the extra data, with package prefix. 
value The String data value. 

가에 여러 번 호출 체인에 대해, 같은 텐트 오브젝트를 돌려줍니다 같은 이름 (예)를 사용하는 것입니다 예를 들어 패키지 접두어을 포함해야 단일 진술.

0

다음과 같이 변경하십시오! 두 번째의

intent.putExtra("name", Name); 

첫 번째 활동에서

: 모든 필드에

String Name = intent.getStringExtra("name"); 

반복이!

+0

정말 고마워요. 그것은 효과가 있었다. – Umitk

0

모든 값에 대해 "NewCard.EXTRA_MESSAGE"를 사용할 수 있는지 확실하지 않습니다. 전에이 접근법을 사용하지 않았습니다. 매번 동일한 매개 변수 "NewCard.EXTRA_MESSAGE"를 사용하여 Intent.getStringExtra()를 사용하면서 코드가 두 값을 구별하는 방법은 무엇입니까?

다음 방법을 사용할 수 있습니다.당신이 글고에서 데이터를 수집 활동에에서 onCreate 메소드에 다음 코드를 추가

 Bundle bun=this.getIntent().getBundleExtra("bun"); // FIXED THIS LINE 
    String Name=bun.getString("name"); 
    String Email=bun.getString("email"); 
    String Address=bun.getString("addr"); 
     // AND EXTRACT ALL OTHER VALUES USING CORRESPONDING KEYS IN SIMILAR MANNER 
+0

intent.putExtra 줄을 삭제하고이를 바꿔서 모든 String을이 data.xxx로 바꿉니다. '저장'버튼을 클릭하면 내 앱이 중지됩니다. 어쨌든 고마워. – Umitk

+0

@ user3009341 제대로 작동해야합니다. 제대로 작동하지 않는다면 올바르게 구현하지 않았다는 것을 의미합니다. 질문에 최근 코드를 추가 할 수 있습니까? – vivek

+0

@ user3009341 OK 코드에 몇 분이 걸렸습니다. 답변에서 해결했습니다. 코드의 두 번째 부분을 참조하십시오. 이제 작동해야합니다 – vivek

관련 문제