Android学习笔记•从零开始•第一天•基本知识

          转载请注明出处CLeopard http://blog.csdn.net/cleopard/article/details/44038103

    开始着手Android。和大多数初用Eclipse的人一样,有些手忙脚乱。

    之前看Cocos2d时零星的看过;Cocos2d后来也被耽搁下来了;关于Cocos2d点此穿越,日后更新笔记。

    现做下Android学习笔记,记录点滴。

        -->点击进入Android学习笔记导图

        -->学习资料和源码19本Android经典教程+104个Github上火爆项目开源源码

    加油!

    ●1 绑定的SDK工具包http://developer.android.com/sdk

    ●2 Application Name:安装后显示名称;Project Name:项目名称(通常不加空格);Package Name:包名(如com.cleopard.testhello)。

    ●3 Window→Open Perspective→DDMS;开发Android时需要的工具,目前可以查看Devices窗口中想看的设备状态(掉线,可用Reset adb重置)。

    ●4 assets文件夹,程序运行时可以动态读取这些内容;或WebView加载本地网页存放。

    ●5 Android不推荐在程序里对字符串进行硬编码,更好的做法一般是把字符串定义在res/values/strings.xml里,然后可以在布局文件或代码中引用

        1.在代码中,通过R.string.hello_world引用。

        2.在XML中,通过@string/hello_world引用。

    ●6 日志工具LogCat

        添加LogCat到Eclipse:Window ->ShowView ->Other(展开Android)

        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高一级。

    ●7 Ctrl+Shift+O自动导入包,比如import android.util.Log;

    ●8 极度建议将不相干的项目关闭掉,仅打开当前工作所需要的项目,不然我保证以后你会在这一方面吃亏。右键项目->Close Project。

    ●9 输入提示,自动补全。其他类同。

        打开Eclipse  -> Window -> Perferences-> Java -> Editor -> Content Assist,在右边最下面一栏找到auto-Activation ,下面有三个选项,找到第二个“Auto activation triggers for Java:”选项

        在其后的文本框中会看到一个“.”存在。这表示:只有输入“.”之后才会有代码提示和自动补全,我们要修改的地方就是这里。把该文本框中的“.”换掉,换成“abcdefghijklmnopqrstuvwxyz.”,这样,你在Eclipse里面写Java代码就可以做到按“abcdefghijklmnopqrstuvwxyz.”中的任意一个字符都会有代码提示。

    ●10 手动创建Activity等。

        1.右键src->New->Package.

        2.右键新建的包->New->Class.(继承Activity,重写onCreate())

        3.创建相应layout:右键res/layout->New->AndroidXML File;(默认LinearLayout即可)

        4.给Activity加载布局:返回Activity在onCreate()方法加入layout,setContentView(R.layout.first_layout);

        注意1.自动补全,Android SDK会自动提供一个Android包下的R文件,别用错了

        注意2.在AndroidManifest.xml中注册启动页面

        注意3.给主活动指定的label不仅会成为挑剔栏中的内容,还会成为启动器(Launcher)中的应用程序显示的名字。

    ●11 隐藏标题栏

        在onCreate函数中,setContentView()之前加入requestWindowsFeature(Window.FEATURE_NO_TITLE);。

●12 方法指定错误或不明确?


        OnClickListener()方法指定错误吧,就像上面的R一样,应该是这样吧。

        两个解决办法:

        1.new OnClickListener()改为->new Button.OnClickListener()

        2.页顶端添加->import android.view.View.OnClickListener;

        似乎正渐渐熟悉Eclipse的环境和风格….


        点击”Import‘OnClickListener’(android.view.View)”即可。

        总结:

            1.以后遇到错误先放鼠标上去看看。

            2.可以把光标至于错误处,用快捷键Ctrl+1

            3.使用Ctrl+Shift+o全局添加包,前面用过了。

    ●13 Toast(提醒方式,显示消息后自动消失)

        可以写到按钮Click事件[onClick()]里:Toast.makeText(FirstActivity.this,"You Click Button", Toast.LENGTH_SHORT).show();

        使用Toast中的静态方法makeText(),可以直接”点出来”。三个参数[Context、内容、显示时长]

    ●14 菜单(Menu)

        1.首先再res目录下简历一个menu文件夹(右键res->New->Folder),再menu目录下添加一个AndroidXML File。

        2.打开menu.xml,添加item:   

            <item  android:id="@+id/add_item"  android:title="Add"/>
            <item android:id="@+id/remove_item"  android:title="Remove"/>
         3.在Activity里重写onCreateOptionsMenu()方法:

            @Override
            public booleanonCreateOptionsMenu(Menu menu)
            {
                getMenuInflater().inflate(R.menu.menu,menu);//用到inflate,见下面
                return true;
            }
         4.添加菜单响应事件,再Activity中重写onOptionsItemSelected()方法:

            @Override
            public booleanonOptionsItemSelected(MenuItem item) {
                switch(item.getItemId()) {
                    case R.id.add_item:
                    Toast.makeText(this,"添加", Toast.LENGTH_SHORT).show();
                    break;
                    case R.id.remove_item:
                    Toast.makeText(this,"移除", Toast.LENGTH_SHORT).show();
                    break;
                    default:
                    break;
                }
                return true;
            }

            这里使用Toast弹出信息,不要忘记写最后的.show()

        5. 系统自带menu键可激活,魅族没有,所以弹不出。

    ●15 关于Inflate()

        通俗的说,inflate就相当于将一个xml中定义的布局找出来.

        在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件.

        因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,如:

<pre name="code" class="java">            View view1=View.inflate(this,R.layout.dialog_layout,null);
            TextView dialogTV=(TextView)view1.findViewById(R.id.dialog_tv);
            dialogTV.setText("abcd");
 

 

        :R.id.dialog_tv是在对话框layout上的组件,而这时若直接用this.findViewById(R.id.dialog_tv)肯定会报错。

    ●16 销毁Activity

        Activity类提供了一个finish()方法,在活动中调用这个方法就可以销毁当前活动了。

        button1.setOnClickListener(newOnClickListener(){
            @Override
            publicovid onClick(View v){
                finish();
            }
        });

        效果和按下Back键一样一样的。

                大家有什么问题可以问我;有一点,我也是新手。加油吧!

····················································································

·                   今天到此结束    2015/03/03 13:20  CLeopard        ·

····················································································

          转载请注明出处CLeopard http://blog.csdn.net/cleopard/article/details/44038103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值