3

我正在做一个项目,并让我的活动通过 Intents 相互传递信息。但是,我最近决定切换并使用 Singleton 方法,并有一个 Application 类来保存我的所有数据。

我现在有点困惑:我如何在没有 Intents 的情况下开始我的活动?这是我换手机前的电话...

    public boolean onOptionsItemSelected( MenuItem item ) {
    switch( item.getItemId() ) {
    case R.id.connect:
        startActivityForResult( new Intent( this, DeviceList.class ), REQUEST_CONNECT_DEVICE  );
        return true;

在不使用意图的情况下,我将如何更改它以启动 DeviceList 类?

4

3 回答 3

9

你没有。使用意图开始您的活动。这就是Android的设计方式。

于 2012-06-15T18:15:26.923 回答
3

是的你可以。首先,您需要扩展ActivityGroup

public class Activity1 extends ActivityGroup

然后,您需要在该类中创建一个方法来替换内容视图,在本例中为Activity1

public void replaceContentView(String id, Intent newIntent) {
    View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView(); 
    setContentView(view);   
}

当你想从 Activity1 启动 Activity2 时,

Intent activity2 = new Intent(this, Activity2.class);
replaceContentView(Activity2.class.getName(), activity2 );

您甚至可以从 Activity2 启动 Activity3

Intent activity3 = new Intent(getParent().getApplicationContext(), Activity3.class);
Activity1 parent = (activity3 ) getParent();
parent.replaceContentView(Activity3.class.getName(), activity3 );

希望这可以帮助

PS:你可以参考这个链接

于 2012-06-15T18:58:07.310 回答
1

在两个活动之间传递数据不仅是意图的滚动。它还传递了其他必须要求的信息,这是创建活动(如Context包信息等 )所必须的

根据链接的定义

意图是 a bstract description of an operation to be performed

于 2012-06-15T18:25:50.967 回答