如何使用接口在两个活动之间进行通信

6 浏览
0 Comments

如何使用接口在两个活动之间进行通信

我正在尝试在两个活动Act1和Act2之间创建监听器接口。 Act1会启动Act2。如果Act2中发生了某个事件,它将通知Act1。问题是,我是使用Intent启动新的活动,那么Act1如何将自己分配为Act2的监听器呢?

Act1.java

public class Act1 extends ActionBarActivity implements
        ActionBar.OnNavigationListener {
    ActionBar actionbar;
    Intent pizzaIntent;
    boolean visibleFirstTime = true;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menutab);
        //在这里设置actionbar
    }
@Override
    public boolean onNavigationItemSelected(int arg0, long arg1)// item pos,
                                                                // itemid
    {
        switch (arg0) {
        case 0:
            if(this.visibleFirstTime == false)
            {
            if(pizzaIntent == null)
            {
                pizzaIntent = new Intent(this,Act2.class);
                //如何调用setChangeListener?
            }
            startActivity(pizzaIntent);
            }
            else
                this.visibleFirstTime = false;
            break;
        case 1:
            System.out.println("selected: " + arg0);
            break;
        case 2:
            System.out.println("selected: " + arg0);
            break;
        case 3:
            System.out.println("selected: " + arg0);
            break;
        default:
            break;
        }
        return true;
    }
}

Act2.java

public class Act2 extends Activity {
     selectionChangeListener listener;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pizza_slice_selection);
    }
    public void setChangeListener(selectionChangeListener listener)
    {
        this.listener = listener;
    }
    private interface selectionChangeListener
    {
        public void selectionMadeAtIndex(int index);
    }
}

注意:请不要建议我使用片段。我想目前使用活动。

0