Android使用Intent实现页面跳转
16lz
2021-01-24
Intent 信使、意图
由Intent来协助Android各个组件之间跳转
1、
startActivity(intent)
包下新建一个类,FActivity.class
publicclassFActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.factivity);}}
新建一个XML文件factivity.xml
<Buttonandroid:id="@+id/bt1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="First"/><Buttonandroid:id="@+id/bt2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Second"/><TextViewandroid:id="@+id/text1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="HelloWorld!"android:layout_gravity="center"/>
同样在创建第二对class和xml。
在AndroidManiFest中注册两个新类,并将默认启动类放在最前:
<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.bcp.layouttest"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activityandroid:name=".FActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name=".SActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>
添加按钮事件:
publicclassFActivityextendsAppCompatActivity{privateButtonbt_first;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.factivity);/****点击第一个按钮实现跳转页面*/bt_first=(Button)findViewById(R.id.bt1);bt_first.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent();//第一个:上下文对象//第二个:目标文件intent.setClass(FActivity.this,SActivity.class);startActivity(intent);}});}}
2、
startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
查看代码:
FActivity.java
publicclassFActivityextendsAppCompatActivity{privateButtonbt_first;privateButtonbt_second;privateTextViewtv;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.factivity);/****点击第一个按钮实现跳转页面*/bt_first=(Button)findViewById(R.id.bt1);bt_first.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent();intent.setClass(FActivity.this,SActivity.class);startActivity(intent);}});/****通过startActivityForresult实现*/bt_second=(Button)findViewById(R.id.bt2);bt_second.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent().setClass(FActivity.this,SActivity.class);/****第二个参数是请求的标示*/startActivityForResult(intent,1);}});tv=(TextView)findViewById(R.id.text1);}/****通过startActivityForresult实现,接收返回数据的方法*一、请求的标示*二、第二个页面返回的标示*三、第二个页面传回的数据*/@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);//判断是否满足条件来进行回传数据if(requestCode==1&&resultCode==2){Stringcontent=data.getStringExtra("intent");tv.setText(content);}}}
SActivity.java
publicclassSActivityextendsAppCompatActivity{privateButtonbt;privateStringcontent="Hello~!";@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.sactivity);/****第二个页面给第一个页面回传数据*回传给第一个页面的实际上是一个intent对象*/bt=(Button)findViewById(R.id.bt3);bt.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent();//创建回传对象intent.putExtra("intent",content);setResult(2,intent);//结束当前页面finish();}});}}
App的签名和打包:
1、为了保证每个应用开发者的合法。
2、防止别人通过相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改
3、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)
更多相关文章
- Android中的高效率的数据库操作框架----LitePal
- Android获取网络图片应用示例
- h5在线动态页面调用app原生方法
- 初探Android中的请求服务器并解析返回的json数据
- Android(安卓)根据城市名称获取经纬度
- Android高级工程师成长路线
- android 获得listview里的控件的id
- Android(安卓)按钮控制ViewPager左右翻页
- Android程序开发之数据存储(一): 使用sqlite 进行登录注册