• 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();
            }
            
        };
    }
  • 相关阅读:
    TortoiseCVS + 错误 + 无效句柄:解决方法
    Oracle学习笔记:关于Oracle服务器在windows32位平台上连接数受限制的问题
    IE6 很邪恶,但我爱它的盒子模型
    PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程
    关于跨浏览器测试那点事
    【转】IETester更新至最新版已经兼容Windows7(附下载地址及Debugbar插件)
    Web 设计师的 50 个超便利工具(上)
    各大浏览器 CSS3 和 HTML5 兼容速查表
    15 个 JavaScript Web UI 库
    编写跨浏览器兼容的 CSS 代码的金科玉律
  • 原文地址:https://www.cnblogs.com/yihujiu/p/5721313.html
Copyright © 2020-2023  润新知