Activity 与 Intent, 开启另一个activity ,用Intent传值

来源:互联网 发布:国外保健品网络销售 编辑:程序博客网 时间:2024/06/05 08:46

1. 示例代码

一个activity开启另一个activity, 传值过去, 并回收到其返回值。

一个activity开启系统的activity 

MainActivity.java

package com.kevin.helloworld;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {private static final String TAG = "myLog";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//Intent实例,打开另一个activity 通过Intent传值 并返回值Button bt1 = (Button) findViewById(R.id.button1);bt1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 方式一 : 直接加类名//Intent intent = new Intent(MainActivity.this, SecondActivity.class);// 方式二: 设置action Intent intent = new Intent();intent.setAction("kevin.demo.startActivity");intent.setData(Uri.parse("http://www.kevin.com"));//intent.setAction(Intent.ACTION_DIAL);//intent.setData(Uri.parse("tel:13412345678"));intent.putExtra("kevin", "I come from main");startActivityForResult(intent, 1234);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if(resultCode==4321){String str = data.getExtras().getString("kevin");Toast.makeText(MainActivity.this, "回收到一个值: "+str, Toast.LENGTH_SHORT).show();}}}
SecondActivity.java
package com.kevin.helloworld;import android.app.Activity;import android.content.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;public class SecondActivity extends Activity {private static final String TAG = "myLog";Intent intent;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_second);intent = this.getIntent();if(intent!=null){String str = intent.getExtras().getString("kevin");String data = intent.getDataString();Log.i(TAG, "str: " + str + " data: " + data);Toast.makeText(this, str, Toast.LENGTH_SHORT).show();Toast.makeText(this, data, Toast.LENGTH_SHORT).show();}Button bt1 = (Button) findViewById(R.id.button1);bt1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {intent.putExtra("kevin", "come from second");setResult(4321, intent);finish();}});}}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.kevin.helloworld"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="14"        android:targetSdkVersion="19" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.kevin.helloworld.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             android:name="com.kevin.helloworld.SecondActivity"             android:label="@string/app_name" >               <intent-filter >                <action android:name="kevin.demo.startActivity"/>                                <category android:name="android.intent.category.DEFAULT"/>                <data android:scheme="http"/>            </intent-filter>                 </activity>            </application></manifest>




0 0
原创粉丝点击