Android中使用Intent实现界面跳转
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、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。