2012-04-06 70 views
0

NEWBIE ALERT!我可以实例化我的活动...我应该吗?

这是情况。我有一个Android ListActivity类(AppWindow),它包含为我的应用程序创建和更新用户界面的所有方法。它包含一个调用setListAdapter的方法(refreshWindow),因此必须是非静态的。到目前为止,我一直在使用一个单独的类(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时,使用'this'变量的活动设置变量act
  3. 现在您可以从FileHandler访问活动实例。
+0

完美!我在FileHandler中放置了一个静态上下文,并按照您的建议将其设置为“this”,然后调用((AppWindow)context).refreshWindow()。看起来它会工作! – osweetman 2012-04-06 06:15:02

0

更新UI必须位于UI线程中。您可以使用处理程序来处理消息。处理程序的构造函数可以包含该活动,因此您可以使用它。

相关问题