두 가지 클래스가 있습니다. MainActivity는 뷰를 설정하고 ClassX는 MainActivity에서 뷰를 업데이트하려고합니다. ClassX는 MainActivity에서 호출 한 AsyncTask입니다 (관련성이있는 경우).Android/Java : 다른 클래스의보기를 변경 하시겠습니까?
내가하고 싶은 일은 mainTextLog라는보기의 텍스트를 변경하는 것입니다. 전역 TextView 변수를 선언하고 onCreate() 메서드에서 findViewById()를 사용하여 뷰를 설정합니다.
private TextView logger;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
logger = (TextView) findViewById(R.id.mainTextLog);
}
이제는 텍스트를 onCreate()에서 변경할 수 있어야합니다. 하지만 이후 다른 클래스 (ClassX) 변경하려면 메서드를 만들 필요가 :
public void setLogText(String text) {
logger.setText(text);
}
그러나 작동하지 않습니다. 로거 및 setLogText() 메서드를 정적으로 만들려고했으나 여전히 작동하지 않습니다. 앱이 충돌합니다.
아마 꽤 쉽지만 아이디어가 없습니다.
나는 주어진 답변에 대해 언급 할 수있는 담당자가없는 나는이 실제 해답이 아니라고 미안하지만, 당신이 정적을 만들 수 있습니다 findViewById가 정적이 아니므로 findViewById가 포함 된 메서드입니다. (GHz에서 제시 한 대답이 제시하는 한). – SeaNick