2012-08-17 2 views
0

2 및 Activities, 주 및 두 번째를 만들었습니다. 그리고 텍스트를 보내려는 경우 EditText을 기본 활동에서 두 번째 활동으로 상자에 넣으 려합니다. 첫 번째 EditText의 ID는 UserName이고 두 번째 ID는 Description입니다.액티비티간에 데이터 교환

메인 활동의 코드는 다음과 같습니다

package com.example.test; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.support.v4.app.NavUtils; 
import android.content.Intent; 
import android.widget.EditText; 

public class Main extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);   
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    public void onClick(View v) { 
     Intent intent = new Intent(Main.this, Second.class); 
     intent.putExtra("username", UserName.getText().toString()); 
     intent.putExtra("gift", Description.getText().toString()); 
     startActivity(intent); 
    } 

    public void ButtonOneClick(View v) { 
     switch (v.getId()) { 
      case R.id.button1: 
       Intent i = new Intent(this, Second.class); 
       startActivity(i); 
       break; 
     } 
    } 
} 
두 번째 활동의

전체 코드는 다음과 같습니다 패키지 com.example.test;

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.widget.TextView; 

public class Second extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second); 

     TextView txtInfo = (TextView)findViewById(R.id.TextOne); 

     String user = "ЖЫвотное"; 
     String gift = "дырку от бублика"; 

     user = getIntent().getExtras().getString("username"); 
     gift = getIntent().getExtras().getString("gift"); 

     txtInfo.setText(user + " , вам передали " + gift); 
    } 
} 

오류 : 도움

추신 : 내 영어

감사에 대한

main.java: Description cannot be resolved 
main.java: UserName cannot be resolved 

죄송합니다 나는 안드로이드에 대한 자바와 프로그래밍을 3 일째 공부하고 있습니다. 제발 돌을 던지 지 마십시오. 당신은 다음 R 클래스 파일을 참조 것

+0

사용자 이름과 선물의 ID를 사용하여 텍스트 편집의 로컬 변수에 사용자 이름과 선물 edittext를 전송 해보십시오. 그런 다음 변수에 텍스트 가져 오기를 사용하십시오. – faizanjehangir

답변

1

, 즉 : 당신은 MainActivity에서에서 onCreate() 메소드에

EditText UserName = (EditText) findViewById(R.id.username); 
EditText Description = (EditText) findViewById(R.id.description); 

을 포함하지 않은

EditText desc = (EditText) findViewById(R.id.Description); 
... 
0

여기를 참조하면 UserNameDescription은 클래스로 간주됩니다. 이러한 클래스가 없으면 오류가 표시됩니다 (이러한 클래스를 찾을 수 없거나 "해결 된"). 구문 강조 표시로이를 확인할 수도 있습니다. Main 또는 Intent과 같이 초록색/청록색으로 표시된 단어가 보입니까?

public void onClick(View v) { 
    Intent intent = new Intent(Main.this, Second.class); 
    intent.putExtra("username", UserName.getText().toString()); 
    intent.putExtra("gift", Description.getText().toString()); 
    startActivity(intent); 
} 

대신 당신은 당신이 userNamedescription를 호출 클래스 EditText의 인스턴스를 원한다. 이 객체들에서 getText()을 수행하고 함께 작업 할 수 있습니다. :)

public void onClick(View v) { 
    Intent intent = new Intent(Main.this, Second.class); 
    EditText userName = (EditText) findViewById(R.id.username); 
    EditText description = (EditText) findViewById(R.id.description); 
    intent.putExtra("username", userName.getText().toString()); 
    intent.putExtra("gift", description.getText().toString()); 
    startActivity(intent); 
} 

내가 camelCase을 시작 소문자로 당신의 변수의 이름을 변경 한주의하시기 바랍니다. 명확한 규칙은 아니지만 소문자로 변수 이름을 시작하는 것이 좋습니다 ('userName , 설명 , 의도 ) while **C**lass references like ( ÈditText ,, 초')는 대문자로 시작됩니다.

0

귀하의 java에 사용자 이름 & 설명을 초기화하지 않았습니다.

EditText us_name=(EditText) findViewById(R.id.user_name); 
EditText us_desp=(EditText) findViewById(R.id.desp);