Activity与Intent

主要内容:

1.多个Activity之间的关系

2.Intent的基本作用

3.在一个Activity当中启动另外一个Activity的方法

4.使用Intent在Activity之间传递数据的基本方法


多个Activiry之间的关系:


如上图所示,两个Activity要进行通信,就需要其中一个Activity使用startActivity方法来和另一个进行沟通。


Intent的基本作用:

一个Intent对象包含了一组信息:

1.Componet name

2.Action

3.Data

3.Category

4.Extras

6.Flags

下面了解下Intent的简单使用方法:

1.创建新的layout文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Intent"
        android:textColor="#FF0000"/>
    


</LinearLayout>
主要就是显示一个TextView。

2.创建新的activity:

右键->new -> class

代码如下:

package com.shanl.intent;

import android.app.Activity;
import android.os.Bundle;

public class OtherActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other_activity);
	}
}
主要就是显示layout中的内容

3.注册activity:

在AndroidManifest.xml中加入:

        <activity 
            android:name="com.shanl.intent.OtherActivity"
            android:label="OtherActivity"></activity>
进行注册

4.列出第一个activity的src:

package com.shanl.intent;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button)findViewById(R.id.button);
		buttonListener listener = new buttonListener();
		button.setOnClickListener(listener);
	}

	class buttonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Intent intent = new Intent();
			intent.setClass(MainActivity.this, OtherActivity.class);
			MainActivity.this.startActivity(intent);
		}
		
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}
在监听器中生成Intent对象,设置跳转的activity,天转:

Intent intent = new Intent();
intent.setClass(MainActivity.this, OtherActivity.class);
MainActivity.this.startActivity(intent);

效果如下:

按下按钮后:




如何使用Intent在activity之间传递数据?

	class buttonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Intent intent = new Intent();
			intent.setClass(MainActivity.this, OtherActivity.class);
			intent.putExtra("abc", "123");
			MainActivity.this.startActivity(intent);
		}
		
	}
在监听器中调用:intent.putExtra("abc", "123");传进一个键值对abc,它的值为123

在另一个activity中接受键值对:

	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other_activity);
		textView = (TextView)findViewById(R.id.text);
		Intent intent = getIntent();
		String value = intent.getStringExtra("abc");
		textView.setText(value);
	}
Intent intent = getIntent();
String value = intent.getStringExtra("abc");
textView.setText(value);

注意:Intent可以在不是同一个应用程序中的activity间传递数据,比如开启一个系统自带的短信发送功能的activity

在监听器中加入下面代码即可启动短信activity:

			Uri uri = Uri.parse("smsto://0800000123");    
			Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
			intent.putExtra("sms_body", "The SMS text");    
			startActivity(intent);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值