• 认识 Android 中的 Activity 组件-------活动


    一、开发步骤:

    1. 创建活动
    2. 创建布局
    3. 在活动中注册布局
    4. 在AndroidManifest文件中注册活动

    注意:在代码中访问资源文件,我们是通过使用R资源类中定义的资源文件类型和资源文件名称来访问的。具体格式为:R.资源文件类型.资源文件名称。

    有两个R文件:我们使用本地的R文件,注意不要导入错误。

    1. import com.example.activetest.R;  //导入本地的R
    2. Android SDK 还会自动提供一个android 包下的R文件。

    二、隐藏标题栏应用

    protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏标题栏
            setContentView(R.layout.second_layout);
    }
    requestWindowFeature(Window.FEATURE_NO_TITLE)的意思就是不在活动中显示标题栏,注意这一句代码一定要在setContentView()之前执行,否则将会报错。

    三、在活动中使用Toast

    Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。

    Toast.makeText(FirstActivity.this, "You click the button1", Toast.LENGTH_SHORT).show();

    通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来。

    makeText()接收三个参数:

    1. 第一个参数Context,也就是Toast要求的上下文。
    2. 第二个参数就是Toast显示的文本内容
    3. 第三个参数就是Toast显示的时长。Toast.LENGTH_SHORT、Toast.LENGTH_LONG

    四、在活动中使用Menu:只有按下Menu键才会显示

    <?xml version="1.0" encoding="utf-8"?>
    
        <menu xmlns:android="http://schemas.android.com/apk/res/android">
            <item
                android:id="@+id/add_item"
                   android:title="add"
                   />
            <item
                android:id="@+id/remove_item"
                android:title="remove"
                />
            
        </menu>

    在活动中重写 onCreateOptionsMenu()方法。通过getMenuInflater()方法获得MenuInflater对象,在调用inflate()方法就可以创建当前活动的菜单。

    public boolean onCreateOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            getMenuInflater().inflate(R.menu.main,menu);
            return true;
        }
        
        public boolean onOptionsItemSelected(MenuItem item){
            switch(item.getItemId()){
            case R.id.add_item:
                Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
                break;
            case R.id.remove_item:
                Toast.makeText(this, "You clicked remove", Toast.LENGTH_SHORT).show();
                break;
            default:
            }
            return true;
            
            
        }

    五、销毁一个活动:调用finish()

    六、Intent

    Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同的组件之间传递数据。Intent一般可以用于启动活动、启动服务、以及发送广播等场景。

    1、使用显示Intent

    Intent intent=new Intent(FirstActivity.this,SecondActivity.class );
    startActivity(intent);

    2、使用隐式Intent:指定了一系列更为抽象的action和Category等信息,然后交由系统去分析这个Intent,并帮助我们找出合适的活动去启动。

     <activity android:name="com.test.activitytest.SecondActivity">
                
               <intent-filter >
                   <action android:name="com.test.activitytest.ACTION_START" />
                   <category android:name="android.intent.category.DEFAULT"/>
                   <category android:name="android.intent.category.MY_CATEGORY"/>
               </intent-filter>
            </activity>

    每个Intent中只能指定一个action,但可以指定多个category。

    3、更多隐式Intent的用法

    Intent intent=new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://www.baidu.com"));

    Intent的action是Intent.ACTION_VIEW,这是Android系统内置动作,其常量值是android.intent.action.VIEW。通过Uri.parse()方法,将一个网址字符串解析成一个Uri对象,再调用Intent的setData()方法将这个Uri对象传递进去。

    4、向下一个活动传递数据。

    .putExtra()方法:传递数据

    .getStringExtra:获得数据

    5、返回数据给上一个活动

    七、活动的启动模式

    1. standard模式

           它是活动默认的启动模式,在不进行显示制定的情况下,所有活动都会自动使用这种启动模式。每次通过此模式来启动activity时,android总会为目标activity启动一个新的实例。

    2. singleTop模式

           它和standard模式有点类似,但是又一点是不同的:此模式下当将要被启动的activity已经位于Task栈顶时,系统不会重新创建目标activity实例,而是复用已有的activity实例。

           如果将要被启动的activity没有位于Task栈顶时,此时系统会重新创建目标activity的实例,并将它加载到Task栈顶上。    

    3.  singleTask模式

    使用这种加载模式的activity在同一个Task内只有一个实例,当系统采用此singleTask模式启动activity时,可以分为三种情况:

    • 如果将要启动的activity不存在,系统将会创建目标activity实例,并将它加入到Task栈顶。
    • 如果将要启动的activity已经位于Task栈顶,此时与singleTop模式的行为相同。
    • 如果将要启动的activity已经存在,但没有位于Task栈顶,系统将会把位于该activity上面的所有activity移出Task栈,从而使得目标activity转入栈顶。

    4.    singleInstance模式

           此加载模式下,无论从哪个Task中启动目标activity,只会创建一个目标activity实例,并会使用一个全新的Task栈来装载该activity实例。当系统采用singleInstance模式启动activity时,可以分为两种情况:

    • 如果将要启动的activity不存在,系统会先创建一个全新的Task、再创建目标activity的实例,并将它加入新的Task的栈顶。
    • 如果将要启动的activity已经存在,无论它位于哪个应用程序中,无论它位于哪个Task中,系统将会把该activity所在的Task转到前台,从而使用该activity显示出来。

    tips:需要指出的是,采用singleInstance模式加载activity总是位于Task栈顶,采用singleInstance模式加载activity所在Task只包含该activity。

  • 相关阅读:
    利用索引提高SQL Server数据处理的效率
    拆掉思维里的墙摘抄
    QR码和PDF417比较
    保存一个记录到数据库又马上返回ID号
    C#获取当前路径的7种方法
    汉诺塔算法不错,收藏了!
    如何确定Z检验的值(查正态分布表时要注意中间的数字都是面积,最左边一列和最上面一行都是Z值)
    opencv的安装
    SQL事务
    重大财务决策前的思考
  • 原文地址:https://www.cnblogs.com/lyjs/p/5259290.html
Copyright © 2020-2023  润新知