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();
        }
        
    };
}

 

posted @ 2016-07-30 17:06  我有一壶酒  阅读(225)  评论(0编辑  收藏  举报