0

我浏览了其他帖子,发现我正在通过 new 运算符初始化活动来做我不应该做的事情。

基本上我有两个活动类 PlayListActivity(扩展 ListActivity)和 MainActivity。我在 PlayListActivity 中有一个公共函数,我需要在 MainActivity 中调用它。我应该如何做到这一点?我需要遵循什么模式吗?我还有一个问题,我想在没有通过意图的情况下在我的 Activity 布局中单击按钮时启动此功能(定义驻留在 ListActivity 中)。有办法吗?如果是的话,请给我举个例子。

一个新手。

4

1 回答 1

0

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">

第二种选择:在每个活动中定义一个 Handler 并使用 Handler.sendMessage 在活动之间发送消息:

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

于 2012-10-21T16:44:28.963 回答