0

他の投稿を調べたところ、新しいオペレーターを介してアクティビティを初期化することで、すべきでないことを実行していることがわかりました。

基本的に、PlayListActivity(extending ListActivity)とMainActivityの2つのアクティビティクラスがあります。PlayListActivityに、MainActivityで呼び出す必要のあるパブリック関数があります。どうすればそれを達成できますか?従う必要のあるパターンはありますか?また、アクティビティレイアウトで意図せずにボタンがクリックされたときに、この関数(ListActivityにある定義)を開始したいという問題があります。方法はありますか?はいの場合は、例を示してください。

初心者。

4

1 に答える 1

0

これを行う 2 つの一般的な方法:

最初のオプション: アプリケーションを拡張し、そこで 2 つのアクティビティ間のインターフェイスを公開します。

public class MyApplication extends Application {

private static MyApplication singleton;
public ListAcvitiy2MainActivityItf ltm;
public MainActivity2ListActivityItf mtl;

@Override
public void onCreate() {
    super.onCreate();
    singleton = this;
}

public MyApplicatoin getInstance(){
    return singleton;
}

}

各インターフェイスで、公開するメソッドを宣言します。

public interface ListAcvitiy2MainActivityItf {
    public void someMethod();
}

マニフェストで MyApplication を宣言します。

<application
    android:icon="@drawable/launch_icon"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:name="MyApplication">

2 番目のオプション: 各アクティビティで Handler を定義し、Handler.sendMessage を使用してアクティビティ間でメッセージを送信します。

private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) {...

于 2012-10-21T16:44:28.963 に答える