2012-04-06 3 views
0

NEWBIE ALERT!Могу ли я создать экземпляр своей деятельности ... и должен ли я?

Прошлая ситуация. У меня есть класс Android ListActivity (AppWindow), который содержит все методы, которые создают и обновляют пользовательский интерфейс для моего приложения. Он включает в себя метод (refreshWindow), который вызывает setListAdapter, и поэтому должен быть нестационарным. До сих пор я использовал отдельный класс (FileHandler) для выполнения манипуляций с файлами, на которые ссылается класс AppWindow. Я достиг точки, где я хочу вызвать метод refreshWindow, когда была выполнена определенная манипуляция с файлами. Однако, поскольку метод refreshWindow не статичен, кажется, что мне нужно создать экземпляр AppWindow и вызвать метод через этот экземпляр. Однако я не уверен, как это сделать или если это даже хорошая идея. Возможно, мне просто нужно переместить всю логику FileHandler в AppWindow, хотя я бы предпочел сохранить их отдельно.

Вот описание ситуации в виде кода:

AppWindow.java

... 

public class AppWindow extends ListActivity { 

... 

    void refreshWindow() { 

    ... 

    setListAdapter(new ListAdapter()); 

    ... 

    } 

... 

} 

FileHandler.java

... 

class FileHandler extends Activity { 

... 

    static void doStuffToFiles() { 

    ... 

    AppWindow appWindow = new AppWindow(); 
    appWindow.refreshWindow(); 

    ... 

    } 

... 

} 

Должен ли я делать это? Если да, то каким образом я могу правильно создать AppWindow?

ответ

2
  1. Создать статическую переменную-элемент; скажем, действие; в FileHandler
  2. При создании ListActivity задайте действие переменной с помощью этой переменной активности
  3. Теперь вы можете получить доступ к экземпляру активности из FileHandler.
+0

Отлично! Я помещаю статический Контекст в FileHandler, устанавливаю его в это приложение из AppWindow, как вам было предложено, а затем вызывает контекст ((AppWindow)) .refreshWindow(). Похоже, это сработает! – osweetman

0

Обновление пользовательского интерфейса должно быть в потоке пользовательского интерфейса. Вы можете использовать обработчик для обработки сообщения. Конструктор обработчика может содержать активность, поэтому вы можете использовать его.

Смежные вопросы