2011-01-15 4 views
0

edittext의 내용을 다른 .java 파일의 알림에 전달하고 싶습니다. 다음과 같이 코드의 주요 부분은 다음과 같습니다안드로이드 전달 변수

public class HelloAndroid2 extends Activity { 

private Button b2; 
public Editable etext; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    EditText editText = (EditText)findViewById(R.id.EditText01); 
    editText.setText("name"); 
    etext = editText.getText(); 

    b2 = (Button) findViewById(R.id.Button02); 
    b2.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     //Toast.makeText(HelloAndroid2.this, editText.getText(), Toast.LENGTH_LONG).show(); 
     Toast.makeText(HelloAndroid2.this, etext, Toast.LENGTH_LONG).show(); 

    } 
    }); 

} 

}

이 내 MyService.java 파일의 etext 변수를 호출하는 코드가 있어야한다 : 문자열 MyNotifiyText = etext; 어떻게해야합니까? 아니면 다른 .java 파일에서 etext 변수를 호출해야합니까?

답변

1

두 액티비티간에 정적 변수를 사용하거나 MyService가 HelloAndroid2를 호출하는 경우 엑스트라와 함께 의도를 사용하여 데이터를 전달할 수 있습니다.

+0

"당신이 할 수있는 두 가지 활동에 걸쳐 정적 변수 사용 "- 어떻게 수행 할 것인가? – erdomester

+0

활동 중 하나에서 정적 변수를 유지하거나 Heitara와 같은 모델 클래스를 유지하는 것이 좋습니다 –

0

가장 쉬운 방법은 모든 데이터를 보유 할 모델 클래스를 만드는 것입니다.

예 :

package com.examples; 

public class DataModel { 

    public static String txt = ""; 

} 
다음과 같이 요이 변수에 데이터를 입력해야

:

DataModel.txt = "you string"; //editText.getText(); 

을 그리고 당신은 언제 어디에서 액세스 할 수 있습니다 중 하나

editText.setText(DataModel.txt); 
+0

public class DataModel { \t public static String etext; } 문제가 있습니다. 최종 결정을해야합니다. public static final String etext 후 "공백 최종 필드 etext가 초기화되지 않았을 수 있습니다" 코드에서 DataModel.etext = editText.getText(); 또한 틀렸어, 나는 etext를 만들어야 해. 편집 가능 그래서 이제는 public static final Editable etext로 선언되었지만 여전히 같은 문제가있다. 이제 선언에서 결승전을 제거해야합니다. 방금 ​​공개 된 편집 가능한 etext라면, 나는 그것을 정적으로 만들어야 만한다. 그리고 마지막으로 .... 실수를 바로 잡을 때, 또 다른 것이 나온다. – erdomester

+0

그렇지 않으면 한 번만 초기화 할 수 있습니다. 결승전은 상수와 비슷하지만 한 번만 초기화되며 나중에 변경할 수 없습니다. – Heitara