java Android之Activity之间简单的信息传递

Android课上学了Activity之间传值的问题,涉及到Intent,Bundle,按钮事件还有Android的一些基础知识,总结一下留以后复习用。

R类:

R是Resource的简写,资源的意思,这个类用于管理project中的资源,看了R类的源代码发现里面有好多16进制数,大概是地址,方便找资源。用R类引用资源的格式是R.资源文件类型.资源文件名称,就像setContentView(R.layout.activity_main);这句,引用了xml文件。

Intent:

Intent叫做意图,用于Android的应用进程间的通讯和应用程序内部的Activity间的通讯。比如
Intent intent = new Intent(); 
intent.setClass(MainActivity.this,NextActivity.class);
start(intent);
这样就可以从MainActivity转向NextActivity。

Bundle:

Bundle类似map,提供一种key-value的键值对应关系,当然一个Bundle的对象可以存放很多个键值对。Bundle可以用于Activity之间的值传递,就是在MainActivity中把要传递的信息存在Bundle的对象里,然后用intent传递,接收方可以通过Bundle的key拿到value。

比如在发送方

Intent intent = new Intent(); 
intent.setClass(MainActivity.this,NextActivity.class);
Bundle mBundle = new Bundle();
String str="hello";
mBundle.putString("Data",str);//插入键值对,"Data"是键,str是值
intent.putExtras(mBundle);

接收方

Bundle bundle = getIntent().getExtras();
String data = bundle.getString("Data");

Activity:

从功能上说Activity是android 应用程序的基本功能单元,提供一个屏幕,用户可以用来交互为了完成某项任务。

刚创建一个新的Activity时,会自动生成一些代码

public class MainActivity extends Activity 
{

	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@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;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) 
	{
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) 
		{
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}
创建的MainActivity继承了Activity类,重写了onCreate,onCreateOptionsMenu,onOptionsItemSelected三个函数。

onCreate是在Activity被创建时被系统调用,这个方法有一个参数,Bundle类型的savedInstanceState,这个词的字面意思是保存实例状态,而它是怎么做到保存状态的呢?当一个Activity要被kill之前可以调用onSaveInstanceState()来保存当前activity的状态信息,用来保存状态信息的Bundle会同时传给两个方法,一个是onRestoreInstanceState()另一个就是onCreate(),所以信息会存在savedInstanceState中,当这个Activity再次被创建,就能通过调用onCreate获取上次的信息了。函数体中第一句是调用了父类的onCreate函数,为了执行一些必要的逻辑,第二句的作用是给页面指定布局文件资源还有绑定该页面的xml文件。

onCreateOptionsMenu,当用户点击menu按钮时调用这个方法,具体的等学过了再来补...

onOptionsItemSelected,当menu有命令被选择时,会调用此方法,具体的等学过了再来补...

Button:

先要添加button'到XML文件里,这个button会有一个ID号比如button1,在类中就用这个ID号获取这个按钮
Button button=(Button)findViewById(R.id.button1);
然后处理这个按钮被点击的事件,我的做法是给按钮注册一个监听器,用匿名内部类实现OnClickListener接口的onClick方法,具体是
protected void onCreate(Bundle savedInstanceState) 
{
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	Button button=(Button)findViewById(R.id.button1);
	button.setOnClickListener(mylistener);
}
private OnClickListener mylistener=new OnClickListener()
{
	public void onClick(View v)
	{
	//写按钮被按下后要发生什么	
	}
};





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值