Android--Intent的使用_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android--Intent的使用

Android--Intent的使用

 2013/12/12 17:09:10  CN.programmer.Luxh  博客园  我要评论(0)
  • 摘要:1、Activity之间的切换通过Intent来完成。1)清单文件,配置好Activity,所有Activity都需要在该文件中配置。<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="cn.luxh.intent"android:versionCode="1"android:versionName="1
  • 标签:android 使用 Intent Ten

1、Activity之间的切换通过Intent来完成。

  1)清单文件,配置好Activity,所有Activity都需要在该文件中配置。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.luxh.intent"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <!-- 第一个Activity -->
        <activity
            android:name="cn.luxh.intent.FirstActivity"
            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
                android:name="cn.luxh.intent.SecondActivity"
                android:label="@string/second_activity">
                <intent-filter>
                       <action android:name="cn.luxh.intent.SecondActivity"/> <!--意图筛选器名称 -->
                       <category android:name="android.intent.category.DEFAULT"/><!--意图筛选器类别 -->
                </intent-filter>
        </activity>
    </application>

</manifest>

  2)Activity代码

package cn.luxh.intent;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent;

public class FirstActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        handleBtnJumpClick();
    }
    
    /**
     * 处理按钮点击事件
     */
    private void handleBtnJumpClick() {
        Button btn_jump = (Button) findViewById(R.id.btn_jump);
        btn_jump.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //创建一个Intent
                
                /*Intent intent = new Intent();
                intent.setClass(FirstActivity.this, SecondActivity.class);*/
                
                //通过意图筛选器名称创建Intent
                Intent intent = new Intent("cn.luxh.intent.SecondActivity");
                
                //启动新的Activity
                startActivity(intent);
            }
        });
    }

}

 

package cn.luxh.intent;

import android.app.Activity;
import android.os.Bundle;

public class SecondActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }
}

   3)运行效果

 

2、从Intent中返回数据

  在第二个Activity中输入用户名,然后在第一个Activity中显示。

  1)布局文件activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/second_activity_textview"
            android:layout_gravity="center_horizontal"/>
        
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/second_activity_textview_username"/>
        
        <EditText 
            android:id="@+id/edit_text_username"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="text"/>
        
        <Button 
            android:id="@+id/btn_submit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/second_activity_btn_submit"
            android:layout_gravity="right"/>
</LinearLayout>

  2)Activity代码

package cn.luxh.intent;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.app.Activity;
import android.content.Intent;

public class FirstActivity extends Activity {
    
    public static final int REQUEST_CODE = 1;//标识代码
    
    private static final String TAG = "FirstActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        handleBtnJumpClick();
    }
    
    /**
     * 处理按钮点击事件
     */
    private void handleBtnJumpClick() {
        Button btn_jump = (Button) findViewById(R.id.btn_jump);
        btn_jump.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //创建一个Intent
                
                /*Intent intent = new Intent();
                intent.setClass(FirstActivity.this, SecondActivity.class);*/
                
                //通过意图筛选器名称创建Intent
                Intent intent = new Intent("cn.luxh.intent.SecondActivity");
                
                //启动新的Activity,新的Activity结束后有结果返回
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }
    
    /**
     * startActivityForResult(intent, REQUEST_CODE)启动的新Activity结束调用该方法获取返回值
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode){
        case REQUEST_CODE:
            if(resultCode == RESULT_OK) {
                String username = data.getData().toString();
                Log.d(TAG, "返回的数据是:"+username);
                Toast.makeText(this,username, Toast.LENGTH_LONG).show();
            }
        }
    }

}
package cn.luxh.intent;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class SecondActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        handleBtnSubmitClick();
    }
    
    /**
     * 处理提交按钮点击
     */
    private void handleBtnSubmitClick(){
        Button btn_submit = (Button) findViewById(R.id.btn_submit);
        btn_submit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取输入的用户名
                EditText et_username = (EditText) findViewById(R.id.edit_text_username);
                String username = et_username.getText().toString();
                Intent data = new Intent();
                data.setData(Uri.parse(username));
                setResult(RESULT_OK, data);//RESULT_OK = -1, operation succeeded
                finish();//关闭当前Activity
            }
        });
    }
}

  3)运行效果

 

发表评论
用户名: 匿名