Android中的Intent
一、程序效果
实现两个Activity间信息的传递,本程序通过Intent对象进行传递。
二、代码编写与解析
1.编写两个Activity对应的layout:main.xml和other.xml
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"
>
<Button
android:id="@+id/myButton"
android:text="点击跳转"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
other.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/myTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
2.在编写两个Activity
Activity02.java
package linys.activity;
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;
/**
*
* @Project: Android_Activity02_Intent
* @Desciption: intent用来传递Activity间的信息:
* 一个Intent对象主要包括:
* 1.Component name
* 2.Action
* 3.Data
* 4.Extras
* @Author: LinYiSong
* @Date: 2011-3-25~2011-3-25
*/
public class Activity02 extends Activity {
Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.myButton);
btn.setOnClickListener(new BtnListener());//添加监听器
}
class BtnListener implements OnClickListener{
@Override
public void onClick(View v) {
Intent intent =new Intent();
//往Intent中添加键值对Extra
intent.putExtra("key","value");
intent.setClass(Activity02.this, OtherActivity.class);//设置转向的两个类
Activity02.this.startActivity(intent);//Activity02启动传递
//利用android自带的发短信功能
// Uri uri=Uri.parse("smsto://0800000123");
// Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
// intent.putExtra("key","value");
// Activity02.this.startActivity(intent);
}
}
}
OtherActivity.java
package linys.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class OtherActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
TextView textView=(TextView)findViewById(R.id.myTextView);
//取出Intent把Intent中的值设置成TextView的内容
Intent intent=this.getIntent();
String value=intent.getStringExtra("key");
textView.setText(value);
}
}
三、程序解析
1.intent用来传递Activity间的信息:
一个Intent对象主要包括:
* 1.Component name
* 2.Action
* 3.Data
* 4.Extras:一个键值对,相当于一个map
2.Intent对象的操作
*1.new出对象
*2.往intent中放入传递的信息
*3.指定Activity间的转向,一个Activity对象-->另一个Activity类
*4.启动转向