Intent的介绍类型于WEB开发中的request,属于一个Map结构的数据类型,可以用来传递数据及启动另外的Activity或其他的应用。常用属性介绍:component:可以指定要跳转到哪一个Activityaction:指定跳转后的Activity要作的动作。data:传递的数据extras:键值对
直接上示例看一下,通过这个示例,有几个需要注意的地方,呆会列出来,先上代码:
HelloWorldActivity.javapackage com.zhd.hw; 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; public class HelloWorldActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button myButton = (Button) findViewById(R.id.myButton); myButton.setText("深圳-武汉"); myButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent();// 创建一个中转器 intent.setClass(HelloWorldActivity.this, Activity02.class);// 告诉中转器要去哪里 intent.putExtra("hwa", "火车已经到站");// 带点值过去 HelloWorldActivity.this.startActivity(intent); } }); } }
Activity02.java
package com.zhd.hw; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class Activity02 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity02); //这里一定要注意,绑定哪个布局配置文件。 Intent intent = this.getIntent();//获取从HelloWorldActivity传过来的中转器 String hwa = intent.getStringExtra("hwa");//获取带过来的值 TextView myText02 = (TextView)this.findViewById(R.id.myText02); myText02.setText(hwa); } }
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:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
activity02.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/myText02" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
R.java自动生成,就不上代码了
需要注意的地方:
1、setContentView(R.layout.activity02); //这里一定要注意,绑定哪个布局配置文件。这里一定要注意,我习惯copy代码过来,但是忘记这一行的代码没有改,还是绑定的main.xml布局文件,所以发布总是有问题,导致调了几个小时才知道这里绑定错了。
2、发布修改后的程序到模拟器启动总是报错
如果发布apk程序到模拟器不成功的话,可以进入模拟器setting->application->application Manager->选择你发布的程序,删除后再重新发布,就会没有问题了。
这个问题也让我调整了几个小时……
OK,以后一定要注意这几个地方