프로그래밍 언어에 익숙하지만 안드로이드 프로그래밍에 익숙하지 않습니다.Android; 클래스 바디에서 edittext 선언하기 (어떤 메소드에서든지)
나는 라벨 (textview), 버튼 및 데이터 입력 (edittext)으로 작동하는 일부 필드가있는 프로그램이 있습니다.
언제든지 프로그램의 시작 부분에서 선언 할 때마다 (물론 수업 중에), 응용 프로그램을 시작할 때 충돌이 발생하고 시뮬레이션에서 "불행히도 프로그램이 중단되었습니다"라는 경고가 표시됩니다.
Eclipse는 선언문에 오류를주지 않으며 문제없이 일반 변수를 정의하는 데 동일한 방법을 사용했습니다. 또한 클래스 본문에 mediaplayer 객체를 선언 할 때도 동일한 오류가 발생합니다.
왜 오류가 발생하는지 알고 계십니까? 그리고 edittext, viewtext 등과 같은 전역 객체를 선언 할 수있는 또 다른 방법이 있습니다 ... 메소드에서 반복적으로 선언하면 이상하게 들립니다.
감사합니다.
공용 클래스 TrainerActivity는 활동 {
Button stopTimer = (Button)findViewById(R.id.StopTimer);
Button startTimer = (Button)findViewById(R.id.StartTimer);
EditText totalTime = (EditText)findViewById(R.id.TotalTime);
EditText enterMin = (EditText)findViewById(R.id.EnterMin);
EditText enterSec = (EditText)findViewById(R.id.EnterSec);
private boolean breaker = false;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startTimer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Button_StartTimer();
}
});
stopTimer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Button_StopTimer();
}
});
}
findViewById를 사용하십시오. 문제는 필자가 사용하는 방법으로 동일한 객체를 반복해서 사용하고 싶지 않다는 것입니다. OnCreate에서 시작하면 언어 제한으로 인해 OnCreate에서 시작됩니다. 여기에 아무것도없는 경우 수정하십시오. 이 경우, 내 xml 객체를 만들고 초기화 할 수 있습니까? 미스터 스 쿼크 (MisterSquonk)가 제공 한 샘플 코드가 궁금했던 다른 사람들에게 내가 한 일입니다. –
'onCreate (...) '에서'findViewById (...)'를 호출하면, 그들은'Activity'의 범위 내에서 다양한 객체들을 계속 가리킬 것입니다. 즉, 위의 코드에서'tv1'은'MyActivity'가 파괴 될 때까지'MyActivity'의 모든 메소드에 유효합니다. – Squonk