Activity之间的跳转
- 显式跳转
- 隐式跳转
显式跳转
概念:通过指定包名和类名完成跳转
- 详细步骤:
- 对Layout设定两个界面
<!-- 第一个Layout中设定 一个跳转Button控件 一个TextView控件(方便直观看效果) -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/first_name" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="显式跳转"
<!-- 在这里赋予一个onClick方法 -->
android:onClick="getNext1"
/>
<!--设置第二个跳转的Layout 第二个Layout中设定一个TextView(方便直观看效果有个区分) -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/second_name"
/>
2. 在Src中完成两步 (1)设定第二个Layout的Activity的设定(2)给Button写一个onClick方法
/**
*
* @author sKy°
* 第二个Layout
* @d2016-5-15
*/
public class SecondActivity extends Activity {//继承Activity
// 重写onCreat方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 必须绑定第二个Layout 注意这里的R.layout后面是我们的第二个界面
setContentView(R.layout.activity_second);
}
}
}
/**
* 显式跳转--写onClick方法
*/
public void getNext1(View v){
Intent intent=new Intent();
// setClass()中两个参数含义: 第一个为上下文,第二个是跳转的界面类名
intent.setClass(this, SecondActivity.class);
// 完成后start完成!
startActivity(intent);
}
3. 在manifest中需要配置第二个Activity
</activity>
<!-- 需要给跳转的界面指定一个跳转activity的名字(跳转意图的目标) 注意写法 "包名.类名"(如果与主界面同一个包下也可以写为:".SecondActivity")-->
<activity android:name="com.example.retest.SecondActivity">
</activity>
- 上面写好之后就完成了运行效果:
- 跳转第一个界面
隐式跳转
- 概念:直接通过指定setAction完成跳转
大致步骤与显式跳转相同,不同之处有两个地方:
1. manifest的activity配置
<activity android:name=".SecondActivity">
<intent-filter >
<!-- 注意action的写法:"包名.自己设定的名字" -->
<action android:name="com.example.next"/>
<!-- 对category的设置如果没特殊的用途,大多数设为默认DEFAULT即可 -->
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
- 在onclick方法下的Intent设定不同
/**
* 隐式跳转
*/
public void getNext2(View v) {
Intent intent=new Intent();
// 主要不同在于这里,直接为setAction,里面的参数与manifest--action--name的要一模一样少一点都会报错
intent.setAction("com.example.next");
startActivity(intent);
}
- 完成运行效果:
跳转页面