【发布时间】:2010-08-28 16:16:18
【问题描述】:
似乎我能找到的每个在活动之间切换的示例都涉及创建一个 Intent 并通过与按钮关联的 OnClickListener 传入视图的上下文。
但是,如果您只是决定需要切换活动怎么办?在我的例子中,偏好值会导致 Activity 切换。
如何在没有关联 OnClickListener 的情况下创建可导致 Activity 切换的 Intent?
【问题讨论】:
似乎我能找到的每个在活动之间切换的示例都涉及创建一个 Intent 并通过与按钮关联的 OnClickListener 传入视图的上下文。
但是,如果您只是决定需要切换活动怎么办?在我的例子中,偏好值会导致 Activity 切换。
如何在没有关联 OnClickListener 的情况下创建可导致 Activity 切换的 Intent?
【问题讨论】:
这应该为你做:
Intent myIntent = new Intent(this, MyActivityName.class);
startActivity(myIntent);
您可以从当前活动中的任何位置调用它。
【讨论】:
Class.forName(fully qualified class name) 返回一个Class 对象,然后将该Class 对象传递给Intent 构造函数。
这取决于您希望在代码中从何处开始新活动。您需要访问 Context 引用才能启动新活动(例如:AsyncTask 中的 onPostExecute)。请查看 this。
虽然基本上是这样的。
Intent myIntent = new Intent(this, ActivityName.class);
startActivity(myIntent);
也可以是这样的
Intent myIntent = new Intent(context, ActivityName.class);
context.startActivity(myIntent);
【讨论】:
AvitivityName 做出与接受的答案完全相同的错字;)你可以在你知道的评论中指出这一点:)
我有最短的版本
startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class));
【讨论】:
startActivity (new Intent (Thisactivity.this, Nextactivity.class));
别忘了在清单中添加活动
<Activity android:name=".NextActivity>
【讨论】:
当你想切换活动时。你可以调用这些代码。
Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);
您可以在 PreferenceChangeListener 中编写此代码。
【讨论】:
您可以像这样在主活动中创建intent
Intent intent = new Intent(FirstActivity.this, second.class);
startActivity(intent);
如果您正在等待第二个结果,那么您应该使用
StartActivityforresult(intent,request code).
请求代码可以是任何integer。
【讨论】:
使用 PreferenceChangeListener :)
【讨论】:
首先,您需要使用布局 intro_activity_1.XML 文件为按钮创建 UI。之后使用 android:id="@+id/button" 为按钮组设置 ID
例子:
intro_activity_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" />
现在更改您的第一个活动的 java 类。在这个例子中,我们更改了 IntroActivity1.java 的 java 文件
例子:
IntroActivity1.java
//header, import and package data
public class IntroActivity1 extends AppCompatActivity {
Button next_btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intro_activity_1);
next_btn=(Button)findViewById(R.id.button);//button class
next_btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0){
//Start new activity class
Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class);
startActivity(myIntent);
}
});
}
有关活动转换器的更多详细信息,请访问:https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html
【讨论】: