Android--->Intent
main.xml布局代码实现
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <!-- 创建一个按钮事件,执行打电话 --> <Button android:id="@+id/mainBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Call" /> </LinearLayout>
第二个界面布局Second.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/secondTxt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Second" /> <!-- 第二个activity的界面按钮,主界面点击相应的按钮会跳转到这里来 --> <Button android:id="@+id/secondBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Second" /> </LinearLayout>
在AndroidManifest.xml注册一下第二个activity界面
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.szy.intent.activity" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <!-- 创建一个.MainActivity activity--> <activity android:name=".MainActivity" 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都需要在这里注册一下,一个activity相当于一个界面--> <activity android:name=".SecondActivity" android:label="@string/app_name"> </activity> </application> <!-- 表示打电话的权限,需要手机申请提供 --> <uses-permission android:name="android.permission.CALL_PHONE"/> <!-- 发短信的权限 --> <uses-permission android:name="android.permission.SEND_SMS"/> </manifest>
MainActivity.java 代码实现
package com.szy.intent.activity; 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; import android.widget.Toast; public class MainActivity extends Activity { private Button mainBtn=null; private final static int REQUEST_CODE=1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mainBtn=(Button)findViewById(R.id.mainBtn); mainBtn.setOnClickListener(listener); } private OnClickListener listener=new OnClickListener() { public void onClick(View v) { // Intent intent=new Intent(); // intent.setAction(Intent.ACTION_SENDTO); // intent.setData(Uri.parse("smsto:5554")); // intent.putExtra("sms_body", "Welcome to ..."); // startActivity(intent); Intent intent=new Intent(); //创建一个Intent对象, intent.setClass(MainActivity.this, SecondActivity.class); //该对象与SecondActivity进行绑定 intent.putExtra("str", "Intent Demo"); //传递参数过去,此时是传递字符串Internt Demo,以及字符串id号str //startActivity(intent); startActivityForResult(intent, REQUEST_CODE); //开始传递事件,startActivityForResult用于判断是否要返回 } }; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode==REQUEST_CODE) //主界面发送时设定的常量,非负才允许操作 { if (resultCode==SecondActivity.RESULT_CODE) //第二个界面RESULT_CODE { Bundle bundle=data.getExtras(); //设置一个Bundle来接收数据 String str=bundle.getString("back"); //接收back字符串id号的数据 Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show(); //在主界面显示数据 } } } }
SecondActivity代码实现
package com.szy.intent.activity; 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; import android.widget.TextView; public class SecondActivity extends Activity { //这个RESULT_CODE于主界面RESULT_CODE实现绑定,也就是说当此时界面返回时,返回给于与自己RESULT_CODE相同值的界面 public final static int RESULT_CODE=1; private TextView secondTxt; //创建一个TextView来用于显示接收过来的数据 private Button secondBtn; //创建一个button,触发某一个事件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); //此时为布局文件second.xml //接收主界面传递过来的参数操作 Intent intent=getIntent(); Bundle bundle=intent.getExtras(); String str=bundle.getString("str"); //secondTxt显示内容 secondTxt=(TextView)findViewById(R.id.secondTxt); secondTxt.setText(str); //点击secondBtn触发listener事件 secondBtn=(Button)findViewById(R.id.secondBtn); secondBtn.setOnClickListener(listener); } //触发listener事件的内容操作 private OnClickListener listener=new OnClickListener() { public void onClick(View v) { //创建一个Intent用于点击按钮,返回给RESULT_CODE值相同的界面,传递参数为Back Data,id号back Intent intent=new Intent(); intent.putExtra("back", "Back Data"); setResult(RESULT_CODE, intent); finish(); } }; }