我正在开展一个项目并让我的活动通过Intents传递彼此的信息。但是,我最近决定使用swithc并使用Singleton方法并使用Application类来保存我的所有数据。
我现在有点困惑:如何在没有意图的情况下开始我的活动?这是我切换之前的一个电话......
public boolean onOptionsItemSelected( MenuItem item ) {
switch( item.getItemId() ) {
case R.id.connect:
startActivityForResult( new Intent( this, DeviceList.class ), REQUEST_CONNECT_DEVICE );
return true;
如果不使用意图启动DeviceList类,我会将其更改为什么?
答案 0 :(得分:9)
你不是。使用意图开始您的活动。这就是Android的设计方式。
答案 1 :(得分: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
启动Activity3Intent activity3 = new Intent(getParent().getApplicationContext(), Activity3.class);
Activity1 parent = (activity3 ) getParent();
parent.replaceContentView(Activity3.class.getName(), activity3 );
希望这可以提供帮助
P.S:您可以参考this link
答案 2 :(得分:1)
在两个活动之间传递数据不仅仅是意图的滚动..它传递了其他必须要求的信息,这对于创建像Context
,包信息等活动来说是必须的
按照link
的命令意图是bstract description of an operation to be performed
。