android应用开发笔记---Activity和Intent

来源:互联网 发布:大脚 mac 编辑:程序博客网 时间:2024/04/28 18:35

1、大部分应用程序不止一个Activity

2、从一个Acitviey启动到另外一个Activity,在第一个Acitviyt中调用startActivity方法,并传递Intent对象,Intent指明了跳转到哪个Activity,以及跳转要做些什么

3、Intent包含的 主要信息:

      1)、Component name 意图:一个请求,要启动哪个Activity?Service等

      2)、Action,启动后的Activity应该做什么动作(ACTION_CALL.....)

      3)、Data,传送什么数据

      4)、Extras,键值对,可以传递到另外一个Activity中。


附相关case:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><!-- 在该应用程序当中注册了两个Activity --><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="mars.activity02"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">    <!-- 这个Activity是应用程序启动时第一个要运行的Activity -->        <activity android:name=".Activity02"                  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=".OtherActivity" android:label="@string/other"/>    </application>    <uses-sdk android:minSdkVersion="4" /></manifest> 

Activity02.java

package mars.activity02;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;/** * 这个Activity是应用程序启动只有运行的第一个Activity,在这个Activity当中有一个按钮 * @author mars_chenchuan * */public class Activity02 extends Activity {    /** Called when the activity is first created. *///代表按钮对象的引用private Button myButton = null;//复写父类当中的onCreate方法,Activity第一次运行时会调用这个方法    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //为Activity设置布局管理文件         setContentView(R.layout.main);        //以下两行代码是根据控件的ID来得到控件对象        myButton = (Button)findViewById(R.id.myButton);        //为按钮对象设置监听器对象        myButton.setOnClickListener(new MyButtonListener());    }    //以下是一个内部类,这个内部类的对象是一个监听器(如果大家对监听器不是很熟悉,可以参考设计模式当中的观察者模式)    class MyButtonListener implements OnClickListener{    //生成该类的对象,并将其注册到控件上。如果该控件被用户按下,就会执行onClick方法 @Overridepublic void onClick(View v) {//生成一个Intent对象Intent intent = new Intent();//在Intent对象当中添加一个键值对intent.putExtra("testIntent", "123");//设置Intent对象要启动的Activityintent.setClass(Activity02.this, OtherActivity.class);//通过Intent对象启动另外一个ActivityActivity02.this.startActivity(intent);/**以下的4行代码将启动发送短信的Activity,详细的情况会在以后的课程当中进行介绍Uri uri = Uri.parse("smsto://0800000123");    Intent intent = new Intent(Intent.ACTION_SENDTO, uri);    intent.putExtra("sms_body", "The SMS text");    startActivity(intent); */}        }}

OtherActivity.java

package mars.activity02;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class OtherActivity extends Activity{private TextView myTextView = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.other);//取得从上一个Activity当中传递过来的Intent对象Intent intent = getIntent();//从Intent当中根据key取得valueString value = intent.getStringExtra("testIntent");//根据控件的ID得到响应的控件对象myTextView = (TextView)findViewById(R.id.myTextView);//为控件设置Text值myTextView.setText(value);}}


原创粉丝点击