• 第一行代码-第一天(截止41页)


    一、Log

    1.Log常用方法

    1. Log.v()
    这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应级别 verbose,是
    Android 日志里面级别最低的一种。
    2. Log.d()
    这个方法用于打印一些调试信息, 这些信息对你调试程序和分析问题应该是有帮助
    的。对应级别 debug,比 verbose 高一级。
    3. Log.i()
    这个方法用于打印一些比较重要的数据,这些数据应该是你非常想看到的,可以帮
    你分析用户行为的那种。对应级别 info,比 debug高一级。
    4. Log.w()
    这个方法用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好
    去修复一下这些出现警告的地方。对应级别 warn,比 info 高一级。
    5. Log.e()
    这个方法用于打印程序中的错误信息,比如程序进入到了 catch 语句当中。当有错
    误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级
    别 error,比 warn 高一级。
    其实很简单,一共就五个方法,当然每个方法还会有不同的重载,但那对你来说肯定不
    是什么难理解的地方了。我们现在就在 HelloWorld 项目中试一试日志工具好不好用吧。
    打开 HelloWorldActivity,在 onCreate()方法中添加一行打印日志的语句,如下所示:
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.hello_world_layout);
    Log.d("HelloWorldActivity", "onCreate execute");
    }
    Log.d 方法中传入了两个参数,第一个参数是 tag,一般传入当前的类名就好,主要用于
    对打印信息进行过滤。第二个参数是 msg,即想要打印的具体的内容。

    2.作用

    为什么使用 Log 而不使用 System.out?
    日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分
      
    使用Log的好处
    日志打印可控制、打印时间确定、能添加过滤器、日志有级别区分

     当前我们选中的级别是 verbose,也就是最低等级。这意味着不管我们使用哪一个方法
     打印日志,这条日志都一定会显示出来。而如果我们将级别选中为 debug,这时只有我们使
     用 debug 及以上级别方法打印的日志才会显示出来,以此类推。你可以做下试验,如果你把
     LogCat 中的级别选中为 info、 warn 或者 error 时, 我们在 onCreate()方法中打印的语句是不会
     显示的,因为我们打印日志时使用的是 Log.d()方法

     

     二、Activity

    1.是什么?

    活动(Activity)是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件,主要用于和用户进行交互。

    2.什么作用

    显示给用户的界面

    3.怎么创建

    3.1、创建布局文件
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    </LinearLayout>
    由于我们刚才在创建布局文件时选择了 LinearLayout 作为根元素, 因此现在布局文件中
    已经有一个 LinearLayout 元素了。那我们现在对这个布局稍做编辑,添加一个按钮,如下
    所示:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <Button
    android:id="@+id/button_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Button 1"
    />
    </LinearLayout>
    3.2、创建Activity
    public
    class FirstActivity extends Activity {   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);   } }
    3.3、在 AndroidManifest.xml 中进行注册
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.activitytest"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="19" />
    <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
    android:name=".FirstActivity"
    android:label="This is FirstActivity" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>
    </manifest>
    销毁一个活动
    只要按一下 Back 键就可以销毁当前的活动了。不过如果你不想通
    过按键的方式,而是希望在程序中通过代码来销毁活动,当然也可以,Activity 类提供了一
    个 finish()方法,我们在活动中调用一下这个方法就可以销毁当前活动了。
    修改按钮监听器中的代码,如下所示:
    button1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    finish();
    }
    });

    4.常用设置

    不过有些人会觉得标题栏相当占用屏幕空间,使得内容区域变小,因此也有不少的应用程序会选择将标题栏隐藏掉
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    5.Toast用法

    是什么?

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

    怎么用?

    Toast.makeText(FirstActivity.this, "You clicked Button 1",Toast.LENGTH_SHORT).show();

    6.Menu

    是什么?

    手机毕竟和电脑不同,它的屏幕空间非常有限,因此充分地利用屏幕空间在手机界面设计中就显得非常重要了。如果你的活动中有大量的菜单需要显示,这个时候界面设计就会比较尴尬,因为仅这些菜单就能占用屏幕将近三分之一的空间,这该怎么办呢?不用担心,Android 给我们提供了一种方式,可以让菜单都能得到展示的同时,还能不占用任何屏幕的空间。

    怎么用?

    6.1、首先在 res 目录下新建一个 menu 文件夹,右击 res 目录→New→Folder,输入文件夹名
    menu,点击 Finish。接着在这个文件夹下再新建一个名叫 main 的菜单文件
    6.2、插入如下代码
    <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>
    6.3、重写onCreateOptionsMenu()方法
    打开 FirstActivity,重写 onCreateOptionsMenu()方法,代码如下所示:
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }
    通过 getMenuInflater()方法能够得到 MenuInflater对象,再调用它的 inflate()方法就可以给
    当前活动创建菜单了。inflate()方法接收两个参数,第一个参数用于指定我们通过哪一个资源
    文件来创建菜单,这里当然传入 R.menu.main,第二个参数用于指定我们的菜单项将添加到哪
    一个 Menu对象当中,这里直接使用 onCreateOptionsMenu()方法中传入的 menu参数。然后给
    这个方法返回 true, 表示允许创建的菜单显示出来, 如果返回了 false, 创建的菜单将无法显示。
    当然,仅仅让菜单显示出来是不够的,我们定义菜单不仅是为了看的,关键是要菜单真
    正可用才行,因此还要再定义菜单响应事件。在 FirstActivity 中重写 onOptionsItemSelected()
    方法:
    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;
    }
    在 onOptionsItemSelected()方法中,通过调用 item.getItemId()来判断我们点击的是哪一个菜单
    项,然后给每个菜单项加入自己的逻辑处理,这里我们就活学活用,弹出一个刚刚学会的 Toast。

      

  • 相关阅读:
    tomcat正常启动后http://localhost:8080/报错404
    关于导入本地maven项目pom.xml出现missing artifact org....报错处理
    #PHP 数组添加元素、统计数组相同元素个数、改变数组key值~_~
    photoshopcs5 win7安装报错的解决
    重启云服务器以后需要立刻执行的操作
    Android ADT离线更新办法
    Android无法更新sdk的解决办法
    分布式助手Zookeeper(四)
    分布式助手Zookeeper(三)
    分布式助手Zookeeper(二)
  • 原文地址:https://www.cnblogs.com/luoxiaolei/p/5376330.html
Copyright © 2020-2023  润新知