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

时间:2012-04-06 05:28:46

标签: java android

NEWBIE ALERT!

这是情况。我有一个Android ListActivity类(AppWindow),它包含为我的应用程序创建和更新UI的所有方法。它包含一个调用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 个答案:

答案 0 :(得分:2)

  1. 创建一个静态成员变量;说行为;在FileHandler
  2. 在创建ListActivity时,使用活动的“this”变量设置变量act
  3. 现在您可以从FileHandler访问活动实例。

答案 1 :(得分:0)

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