初学Android,启动,关闭Activity(七)
16lz
2021-01-26
Acitivity启动其他Activity有如下两种方法
startActivity(Intent intent):启动其它Activity
startActivityForResult(Intent intent,int requestCode): 以指请求码启动Activity,而且程序将会得到新启动Activity的结果(重写onActivityResult(...)方法获取)
相对的,也有两个关闭Activity的方法对应这两个启动的方法
finish():结束当前Activity
finishActivity(int requestCode):结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity
下面用一个例子来说明第一种启动方式
创建两个Activity,和两个界面XML文件
首先是XML
第一个主窗口,main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/bn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /></LinearLayout>
需要启动的第二个窗口,sub.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Previous" /> <Button android:id="@+id/Close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Close" /></LinearLayout>
第一个主窗口界面
package WangLi.Activity.FirstActivity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class FirstActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button)findViewById(R.id.bn); bn.setOnClickListener(new OnClickListener(){ public void onClick(View source) { //创建需要启动的Activity对应的Intent Intent intent = new Intent(FirstActivity.this,SecondActivity.class); //启动intent对应的Activity startActivity(intent); } }); }}
第二个需要启动的窗口,这里有两个按钮,一个是返回之前的Activity,另一个是返回后还要关闭自身
package WangLi.Activity.FirstActivity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class SecondActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); Button previous = (Button)findViewById(R.id.previous); previous.setOnClickListener(new OnClickListener(){ public void onClick(View source) { //获取启动前Activity的上一个Intent Intent intent = new Intent(SecondActivity.this,FirstActivity.class); //启动intent对应的Activity startActivity(intent); } }); Button close = (Button)findViewById(R.id.Close); close.setOnClickListener(new OnClickListener(){ public void onClick(View source) { //获取启动前Activity的上一个Intent Intent intent = new Intent(SecondActivity.this,FirstActivity.class); //启动intent对应的Activity startActivity(intent); finish(); } }); }}
最后,也是关键的一步,千万不要忘了,把第二个Activity(SecondActivity)加入AndroidManifest.xml中,不然会出现权限错误
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="WangLi.Activity.FirstActivity" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".FirstActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="SecondActivity"></activity> </application></manifest>
程序效果图如下:
由第一个Activity开始,点击按钮,打开第二个Activity
点击按钮,出现第二个Activity
点previous 返回到第一个Activity,点close也可以返回,只是还要把自身关闭掉
更多相关文章
- Android使用newInstance()实例化fragment&setArguments()传递参
- Android中关于Volley的使用(九)认识HurlStack(HttpClientStack)
- 窗口关系
- (Android、Java) AES加密方法
- Android(安卓)Studio用法之ListView(图文并茂的listview界面)
- 【Android(安卓)开发教程】保存到外部存储设备(SD卡)
- Android获取桌面启动图标的位置
- android 4.4 沉浸式状态栏实现
- Android应用程序安装与Launcher启动机制