您的位置:首页 > 其它

利用Intent启动另外一个Activity的方法

2014-09-07 07:54 555 查看
比如从MainActiviy启动OtherActiviy。

一:MainActivity需要添加的代码是

1、在xml文件中添加一个启动按钮Button
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启动第二个Activity" />
2、在resource 的MainActiviy的onCreat()方法中定义Button,并且用findViewById方法找到它,同时为它绑定监听器listener(监听器名字可以随意起)

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button);//定义并且找到button按钮
button.setOnClickListener(new listener());//为button绑定监听器
}


3、建立一个监听器listener的内部类,覆写onClick方法,在onClick方法中定义Intent,以及Intent要启动的那个OtherActivity

class listener implements OnClickListener{

@Override
public void onClick(View v) {//监听器的事件
Intent intent=new Intent();//定义一个Intent
intent.setClass(MainActivity.this,OtherActivity.class);//调用Intent的setClass方法,把OtherActivtiy放进来
startActivity(intent);
}

}
二:建立OtherActivity的方法,看视频教学老师讲的是直接对着src的包点击右键新建一个class,然后覆写方法,在manifest中注册,显得有一点麻烦,而且容易遗忘步骤而出现错误。后来看安卓开发官方文档介绍,有一种更简单的方法:对着工程右键——other——android——android Activity就可以了,系统会自动覆写方法并且自动在manifest文件中注册,方便很多。

三:OtherActivity中的代码

1、xml文件中添加一个显示文本的textView

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="被启动的Activity" />
2、如果不接受MainActiviy传递的数据,整个应用程序到这里就可以启动了,点击MainActiviy中的button,就会跳转到第二个Activity显示TextView了。





四、需要从MainActivity向OtherActivity中传递数据——用Intent自带的putExtra和get***Extra方法

1、MainActivity在原有代码基础上在OnCreate方法中添加putExtra方法放置一个键值对,传递MainActivity中的一个数据以及数据类型(int、string等)

intent.putExtra("com.hzh.intent.Age", 20);
intent.putExtra("com.hzh.intent.Name", "张三");


2、在OtherActivity的OnCreate方法中得到这个键值对

int age=intent.getIntExtra("com.hzh.intent.Age", 10);
String name=intent.getStringExtra("com.hzh.intent.Name");

textView=(TextView)findViewById(R.id.textView);
textView.setText(name+age+"");



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: