0

NEWBIE ALERT!

これが状況です。アプリケーションのUIを作成および更新するすべてのメソッドを含むAndroidListActivityクラス(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を適切にインスタンス化できますか?

4

2 に答える 2

2
  1. 静的メンバー変数を作成します。行動を言う; FileHandlerで
  2. ListActivityの作成時に、アクティビティの「this」変数を使用して変数actを設定します
  3. これで、FileHandlerからアクティビティインスタンスにアクセスできます。
于 2012-04-06T05:38:18.900 に答える
0

UIの更新はUIスレッドにある必要があります。ハンドラーを使用してメッセージを処理できます。ハンドラーのコンストラクターにはアクティビティを含めることができるため、それを使用できます。

于 2012-04-06T06:02:05.777 に答える