一步一步android(11):
来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:42:14
学习完界面控件的布局之后,接下来要考虑的,是各个界面的切换了
为什么要进行界面的切换,>_< ,因为你总不能把所有的操作放在一个界面当中实现吧。。。
就好象你要QQ聊天,总要先登录,然后打开聊天窗口一样,又或者你想看看你的聊天记录。。
那么登录界面是一个Activity,好友列表是一个Activity,单独的聊天窗口也是一个Activity,查看聊天记录是一个Activity……
所以,接下来要学习的是Activity。。。
什么是Activity?Activity就是负责管理那些UI界面,并接受事件的触发,例如按钮的单击,手机硬件的响应等等。
在之前学习那些界面控件当中,其实我们就已经用到了Activity,
但是我们搞来搞去,都是在一个界面上操作,
就好象你一直都在啃一只鸡屁股,而旁边的鸡屁股,或者鸡屁股连着的鸡腿,你看都没有看到。。。
Activity有两种,一种是独立的Activity,一种是相互依赖的Activity。
如果把Activity全比作鸡屁股,那么两个不同的鸡屁股就是两个相互独立的Activity。
如果把所有的Activity比作一只要啃的鸡,那么或许一个Activity是一个鸡屁股,一个Activity是一个鸡腿
则这鸡屁股和鸡腿则是连在一起的相互依赖的Activity。
所以我们要考虑两个问题,
第一,所有的东西,我们从哪开始吃,是先吃这个鸡屁股好,还是先吃那个鸡屁股好,是先吃鸡屁股好还是先吃鸡腿好。
第二,我们吃完了这个鸡屁股,想吃别的鸡屁股或者鸡腿怎么办?
转换成通俗易懂的语言就是说:
一个问题是这么多Activity之间,我们该如何确定第一个。
另一个问题是不同的Activity之间如何通信,
先从第一个问题入手吧。
例如,我有两个鸡屁股,
一个叫做uc浏览器的启动界面,
一个叫做uc浏览器的菜单界面,
如果我想先吃启动界面这个鸡屁股,然后再吃菜单界面这个鸡屁股。
那么首先,你要了解,你有多少鸡屁股或者鸡腿可以吃,其次再来决定第一个被你吃的到底是什么?
既然我有两个鸡屁股,那么我就应该写出来
打开项目根目录,AndroidManifest.xml
添加你的Activity
有intent-filter的表示启动Activity,intent什么意思,下文介绍。
第二个问题,
圣经上有云:
上帝说,要风,于是有了风。
上帝说,要雨,于是有了雨。
上帝说,要男人,于是有了男人。
上帝说,要女人,于是,男人少了一根肋骨。
可见,“要”这个字非常重要。。。
我们人类,其实就是程序世界的上帝,所以我们只要“要”,那么,吃完了鸡屁股我们可以吃鸡腿,吃完了鸡腿我们还可以吃鸡屁股。
而“要”这个字翻译成英文就是 “Intent” ,所以在android程序世界中,我们用Intent来告诉Acitvity:“我们已经吃完了第一个鸡屁股了,现在要吃你了!”
接下来,演示一下,下面的程序结合闪频描述一下两个activity如何通过“intent”进行通信的。。。
public class Jipigu extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jipigu);
this.setTitle("Hello Android QQ群697668");
Message message =new Message();
message.what=100000;
mHandler.sendMessageDelayed(message, 5000);
}
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg)
{
if(msg.what==100000)
{
changetonextactivity();
}
super.handleMessage(msg);
}
};
private void changetonextactivity()
{
Intent intent= new Intent();
intent.setClass(com.android.Yao.Jipigu.this, com.android.Yao.YaoFtp.class);
startActivity(intent);
}
}
因为是闪频,所以只能是这样截图了:
1秒
2秒
3秒
4秒
5秒