您的位置:首页 > 移动开发 > Android开发

Android使用Intent实现页面跳转

2016-04-17 13:54 666 查看
Intent 信使、意图

由Intent来协助Android各个组件之间跳转

1、

startActivity(intent)

包下新建一个类,FActivity.class
<Button
android:id="@+id/bt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="First"/>
<Button
android:id="@+id/bt2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Second"/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:layout_gravity="center"
/>


同样在创建第二对class和xml。

在AndroidManiFest中注册两个新类,并将默认启动类放在最前:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bcp.layouttest">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".FActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".SActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>


添加按钮事件:
2、

startActivityForResult(intent,requestCode);

onActivityResult(int requestCode,int resultCode,Intent data)

setResult(resultCode,data);

查看代码:

FActivity.java
public class FActivity extends AppCompatActivity {
private Button bt_first;
private Button bt_second;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
/***
* 点击第一个按钮实现跳转页面
*/

bt_first= (Button) findViewById(R.id.bt1);
bt_first.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setClass (FActivity.this,SActivity.class);
startActivity(intent);
}
});

/***
* 通过startActivityForresult实现
*/
bt_second= (Button) findViewById(R.id.bt2);
bt_second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent().setClass(FActivity.this,SActivity.class);
/***
* 第二个参数是请求的标示
*/

startActivityForResult(intent,1);
}
});

tv= (TextView) findViewById(R.id.text1);
}

/***
* 通过startActivityForresult实现,接收返回数据的方法
* 一、请求的标示
* 二、第二个页面返回的标示
* 三、第二个页面传回的数据
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//判断是否满足条件来进行回传数据
if(requestCode==1&&resultCode==2){
String content=data.getStringExtra("intent");
tv.setText(content);
}
}
}


SActivity.java
public class SActivity extends AppCompatActivity{
private Button bt;
private String content="Hello~!";
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sactivity);

/***
* 第二个页面给第一个页面回传数据
* 回传给第一个页面的实际上是一个intent对象
*/
bt= (Button) findViewById(R.id.bt3);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
//创建回传对象
intent.putExtra("intent",content);
setResult(2,intent);

//结束当前页面
finish();
}
});

}
}


App的签名和打包:

1、为了保证每个应用开发者的合法。

2、防止别人通过相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改

3、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: