在Android上,如何以编程方式切换活动?

在Android上,如何以编程方式切换活动?,android,android-activity,Android,Android Activity,似乎我能找到的每个在活动之间切换的例子都涉及到创建意图,并通过与按钮关联的OnClickListener在视图上下文中传递 但是,如果你决定需要改变活动,该怎么办?在我的例子中,首选项值导致活动切换 如何创建可能导致活动切换而没有关联OnClickListener的意图?这应该可以帮助您: Intent myIntent = new Intent(this, MyActivityName.class); startActivity(myIntent); 您可以在当前活动中的任何位置调用它。这应

似乎我能找到的每个在活动之间切换的例子都涉及到创建意图,并通过与按钮关联的OnClickListener在视图上下文中传递

但是,如果你决定需要改变活动,该怎么办?在我的例子中,首选项值导致活动切换


如何创建可能导致活动切换而没有关联OnClickListener的意图?

这应该可以帮助您:

Intent myIntent = new Intent(this, MyActivityName.class);
startActivity(myIntent);

您可以在当前活动中的任何位置调用它。

这应该可以为您做到:

Intent myIntent = new Intent(this, MyActivityName.class);
startActivity(myIntent);

您可以在当前活动的任何位置调用它。

使用PreferenceChangeListener:)

使用PreferenceChangeListener:)

您可以像这样在主活动中创建
意图

Intent intent = new Intent(FirstActivity.this, second.class);
startActivity(intent);
如果您正在等待第二次测试的结果,那么您应该使用

StartActivityforresult(意图、请求代码)


请求代码可以是任何
整数

您可以在以下主要活动中创建
意图

Intent intent = new Intent(FirstActivity.this, second.class);
startActivity(intent);
如果您正在等待第二次测试的结果,那么您应该使用

StartActivityforresult(意图、请求代码)


当您想要切换活动时,请求代码可以是任何
整数

。你可以调用这些代码

Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);

当您想要切换活动时,可以在PreferenceChangeListener中编写此代码。

。你可以调用这些代码

Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);

您可以在PreferenceChangeListener中编写此代码。

我有最短的版本

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class));

我有最短的版本

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class));

这取决于要在代码中的何处启动新活动。您需要访问上下文引用才能启动新活动(例如:AsyncTask中的onPostExecute)。请看一下

尽管基本上是这样

 Intent myIntent = new Intent(this, ActivityName.class);
 startActivity(myIntent);
也可以是这样的

Intent myIntent = new Intent(context, ActivityName.class);
context.startActivity(myIntent);

这取决于要在代码中的何处启动新活动。您需要访问上下文引用才能启动新活动(例如:AsyncTask中的onPostExecute)。请看一下

尽管基本上是这样

 Intent myIntent = new Intent(this, ActivityName.class);
 startActivity(myIntent);
也可以是这样的

Intent myIntent = new Intent(context, ActivityName.class);
context.startActivity(myIntent);
别忘了将活动添加到清单中

<Activity android:name=".NextActivity>

别忘了将活动添加到清单中

<Activity android:name=".NextActivity>

首先,您需要使用layout intro_activity_1.XML文件为按钮创建UI。之后,使用android设置按钮组的id:id=“@+id/button”

例如:

简介活动1.xml

<Button    android:id="@+id/button"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content"    
android:layout_weight="1"    
android:background="@android:color/transparent"    
android:text="NEXT" />

有关活动转换器的更多详细信息,请访问:

首先,您需要使用layout intro\u activity\u 1.XML文件为按钮创建UI。之后,使用android设置按钮组的id:id=“@+id/button”

例如:

简介活动1.xml

<Button    android:id="@+id/button"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content"    
android:layout_weight="1"    
android:background="@android:color/transparent"    
android:text="NEXT" />

有关activity changer的更多详细信息,请访问:

是否可以将activity name作为字符串传递?@Mohammad并非根据我看到的任何公共签名,但您可以使用
Class.forName(完全限定的类名)
返回一个
对象,然后将该
对象传递给
意图
构造函数。创建一个读取用户输入并使用其子字符串作为参数通过反射调用另一个类的方法将是一个糟糕的想法。是否可以将活动名称作为字符串传递?@Mohammad不符合我见过的任何公共签名,但您可以使用
Class.forName(完全限定类名)
返回一个
对象,然后将该
对象传递给
意图
构造函数。创建一个方法,读取用户输入并使用其子字符串作为参数,通过反射调用另一个类,这将是一个可怕的想法。我发现有趣的是,您如何使用类名
AvitivityName
;)你可以在你知道的一条评论中指出:)我觉得很有趣,你用类名
AvitivityName
;)做出了与公认答案完全相同的打字错误你可以在你知道的评论中指出:)你欺骗了其他人的答案。。。拿出你的答案罗恩你骗了其他人的答案。。。拿出你的答案。