【问题标题】:Loose coupling and starting activities松散耦合和启动活动
【发布时间】:2014-01-20 14:23:31
【问题描述】:

我想让我的应用程序尽可能松耦合,并且大部分都是通过 IoC 完成的

但是,在某些时候,我需要启动不同的活动,并且实现此活动的类可以是任何类,这意味着我不想定义启动活动的特定类,但需要设置一个意图。

哪里是编写代码来启动我的活动的最佳位置?是否在启动其他活动的同一活动中?还是有一些外部逻辑?

我有一个活动A

我需要从那里开始活动 B

我把逻辑放在哪里

Intent intent = new Intent(this, B.class);
startActivityForResult(intent, requestingB); 

【问题讨论】:

  • 你的问题充其量是模糊的。
  • @UmerFarooq 已编辑,看看是否有帮助
  • 您希望何时启动 Activity B?
  • 通常点击按钮

标签: android android-activity loose-coupling


【解决方案1】:

听起来您正在尝试让其他应用程序启动一个 Activity,但您不希望该 Activity 一定知道启动它的原因。

尝试在您的活动中使用intent-filter。然后,当需要启动它时,它所要做的就是使用intent-filter 中定义的操作触发一个意图。

一如既往,Vogella 在这里有一个很好的教程:http://www.vogella.com/tutorials/AndroidIntent/article.html

【讨论】:

  • 我有一个我必须遵循的导航模式,但是在某个地方,这个模式每周都会改变,我不想开始寻找我放置“现在启动登录活动”的所有地方,现在启动主要活动,现在启动这个活动”
  • 啊!在这种情况下,我建议研究依赖注入。我首选的框架是 RoboGuice!
  • 我正在使用 RoboGuice,但是您如何解决导航问题?必须给出一个具体的类作为参数,你能给我举个例子吗?
【解决方案2】:

正如cmets中提到的OP,他想通过点击一个按钮来启动另一个活动,下面是示例代码:

Button myBut = (Button) findViewById(R.id.but1);

myBut.setOnClickListener(new onClickListener()
{
    @override
    public void onClick(View view)
    { 
       Intent intent = new Intent(A.this, B.class);
       startActivity(intent);
    }
});

希望对你有帮助

【讨论】:

  • 不,这不是我要问的,我不是问如何开始一项活动。我在问:如何在开始活动时“松散耦合”我需要加载的类
猜你喜欢
  • 1970-01-01
  • 2017-06-05
  • 2020-10-26
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 2010-10-22
  • 1970-01-01
相关资源
最近更新 更多