Существует два класса. MainActivity, в котором я устанавливаю представление, и ClassX, из которого я хочу обновить представление в MainActivity. ClassX - это AsyncTask, вызванный из MainActivity, если это актуально.Android/Java: изменить вид из другого класса?
Что я хочу сделать, так это изменить текст вида mainTextLog. Я объявил глобальную переменную TextView, а в методе onCreate() я установил ее в view с помощью 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);
}
Но это не работает. Я попытался сделать logger и setLogText() статическим, но он все еще не работает. Приложение просто падает.
Это, вероятно, довольно легко, но у меня нет идей.
У меня нет респ прокомментировать ответ, который был дан, и мне очень жаль, что это не является реальным ответом, но учтите, что вы не можете создать статический метод, который включает findViewById, поскольку findViewById не статичен. (насколько дает ответ, заданный ГГц). – SeaNick