一步一步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

   
           
               
               
           
   
   

                          android:label="@string/app_name">
       

有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秒