零起点行天下

零起点行天下的笔记

来自Android开发视频教程11(0)

相对布局:android:layout_above 将该控件的底部至于给定ID的控件之上android:layout_below 将该控件的顶部至于给定ID的控件之下android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐  android:layout_alignBaseline 该控件的baseline和给定ID的控件的baseline对齐android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐  android:alignParentBottom 如果该值为true,则将该控件的底部和父控件的底部对齐android:layout_alignParentLeft 如果该值为true,则将该控件的左边与父控件的左边对齐android:layout_alignParentRight 如果该值为true,则将该控件的右边与父控件的右边对齐android:layout_alignParentTop 如果该值为true,则将空间的顶部与父控件的顶部对齐  android:layout_centerHorizontal 如果值为真,该控件将被至于水平方向的中央android:layout_centerInParent 如果值为真,该控件将被至于父控件水平方向和垂直方向的中央android:layout_centerVertical 如果值为真,该控件将被至于垂直方向的中央 marginLeft:外边距RelativeLayout:根据控件相对的位置来控制布局

来自Android开发视频教程2(0)

android开发环境的配置1.下载SDK 新地址 http://developer.android.com/sdk/index.html  下载时貌似SDK中已经绑定了ADT(没有绑定ADT时配置:help-->Install New Software-->添加相应路径Developer Tools......)2.SDK中的tools里面的文件要添加到Path环境变量配置中(计算机-->属性-->高级系统设置--> 环境变量-->path。ps:每一个环境变量都要用分号隔开。)3.eclipse下载:http://www.eclipse.org/downloads/  谨记安装JDK  最好安装1.6版 eclipse最好选用3.5版4.最后SDK要从windows-->preferences-->Android 添加SDK路径 

来自Android开发视频教程3(0)

在eclipse中的package中右键New-->Android Projectres与assets的区别,res中的所有文件会在gen中的R.java下自动生成相应的id而assets中放置的文件不会在R.java中生成相应的idres中的drawable中放置的是图片(hdpi:高分辨率图片;ldpi:低分辨率图片;mdpi:中等分辨率图片)layout中放置的是布局文件每一个Activity都对应有一个布局文件(布局文件的作用就是控制控件在Activity中的位置及属性)values中放置的是我们在程序中需要用到的值。string.xml中存储的均为键值对(在R中也会生成相应的id),同时也是为了应用程序国际化而做,写多个不同语言的string 但是其中的键是必须相同的AndroidMainfirst。xml主要是对整个应用程序进行相关配置mainfist根标签中的package配置的是应用程序的包名;Application标签中是对应用程序进行配置的,icon是配置整个应用程序的图标,labael是配置应用程序的标签在Activity中配置intent-filter属性代表此Activity首先启动uses-sdk中显示的是sdk的最小版本 

来自Android开发视频教程12(0)

在同一组的单选按钮(RadioButton)只有一个被选中每一个RadioGroup为一组;RadioButton中不是给RadioButton加监听器而是给RadioGroup加监听器;RadioGroup上添加的监听为OnCheckedChangeListener(匿名内部类);当单选按钮被触发时调用监听器! CheckBox 多选按钮,每一个CheckButton都要设置监听;CheckBox中没有提供监听器但是CheckBox继承了CompoundButton,CompoundButton中有监听器(OnCheckedChangeListener());Toast 是土司,是弹出信息的意思,就好比土司面包从面包机里弹出一样!Toast.makeText("当前界面","显示内容","显示时间").show();

来自Android开发视频教程13(0)

ProgressBar 是进度条;ProgressBar 中的style="?android:attr/progressBarStyleHorizontal" 是设置横向进度条;android:visibility 设置进度条是否可视,gone是当前不可视;Bar.setVisibility(View.VISIBLE);代码中设置进度条可视;设置进度条最大值有两种方法:1.android:max=“200”;2.Bar.setMax(200);style="?android:attr/progressBarStyle" 默认进度条(转圈的圆) listViewandroid:scrollbars 设置滚动条(当listview的内容超过屏幕时添加);在ListView中显示数据,首先得有数据即有一个list,list中存放map对象。然后还要有适配器(SimpleAdapter);SimpleAdapter adapter=new SimpleAdapter(this:当前对象,list:数据,R.layout.user:指定布局文件,new String[]{"user_name","user_ip"}:list中所有的键名,new int[]{R.id.user_name,R.id.user_ip}:设置每一个键名对应的控件的ID); 只有继承ListActivity才能够重写他的onListItemClick方法;此方法是为了我们点击listView中的每一项时触发相应的事件;

来自Android开发视频教程14(0)

java中启线程有两种方法一种是继承Thread另一种是实现Runable接口。 消息队列遵循先进先出的规则。handler.postDelayed(消息,加入时间):将消息根据特定时间添加入到消息队列!handler.removeCallbacks(消息):停止消息的添加;1.创建handler对象;2.调用handler的post方法将要执行的线程对象添加到队列中3.将要执行的操作下载或其他耗时操作时写在子线程对象的run方法中4.如果想一直向消息队列中添加消息,在run方法 的内部,执行handler.postDelayed或post方法; 两个线程并行运行,而又互不干扰这就是异步处理;bar.setProgress(值):设置进度条的当前进度值;Message msg=handler.obtionMessage():得到一个消息对象(Message类是由Android操作系统提供);arg1、arg2是消息对象的参数;handler.sendMessage(消息):将消息(msg)对象加入到消息队列中;

来自Android开发视频教程15(0)

handler主要运用在异步消息的处理(发送消息与处理消息不是同时进行);如果我们直接调用线程中的run方法实际上我们并没有真的启动另一个线程而是在当前线程中执行此函数;Thread.currentThread():获取当前线程对象;java中标准的实现线程,启动线程的方法:Thread thread=new Thread(r:线程名);r.start();bundle 就是一个数据传输工具;耗时时间比较长,不一定有结果等需要另起线程;looper循环的从消息队列中取消息,处理消息;handlerThread 本身提供了消息循环与处理的功能(实现了使用looper来处理次消息队列的功能,此类有android框架提供);发送消息的另一种方法:           Message msg=handler.obtainMessage();     msg.sendToTarget(); 注:该消息发送的目标对象为生称msg的对象的handler对象;创建bundle对象并设置值:            Bundle bundle=new Bundle();     bundle.putInt(“age”,20);       bundle.putString("name","张三");    msg.setData( bundle):设置数据注:bundle是键值对类型的其Key为String,Value为基本数据类型;取bundle的值:                        Bundle bundle= msg.getData();     int  n=bundle.getInt("age");        String  s=bundle.getString(“name”);     注:键的值一定要相同; 

来自Android开发视频教程16(0)

功能全,消耗小。SQLite的官网:www.sqlite.orgsqlite的使用需要通过SQLiteOpenHelper这个类,这个类是一个助手类,通过继承SQLiteOpenHelper重写其中的方法从而管理数据库;getReadableDatabase():得到一个可读的数据库,通过这个方法可以的到一个SQLiteDatabase对象,并对其进行增、删、改、查;       getWritableDatabase():得到一个可写的数据库;onCreate(SQLiteDatabase db):创建数据库,创建表的操作写在此方法中;db.execSQL(......):创建表的方法;onOpen(SQLiteDatabase db):打开数据库;onUpgrade(......)更新数据库,升级数据库时写在此方法中;DatabaseHelper dbHelper=new DatabseHelper(当前Activity,“数据库名称”):创建一个DatabaseHelper对象;SQLiteDatabase db=dbHelper.getReadableDatabase():只有使用了DatabaseHelper对象的getReadableDatabase()或者getWritableDatabase()方法才能真正的创建一个数据库;向数据库中添加数据时要借助于ContentValues这个对象即 ContentValues values=new ContentValues();  向values中添加数据:                      values.put("列名",列值)注:添加数据的数据类型一定要与表中的数据类型一致;插入数据属于写数据,所以我们的得到写数据的权利:DatabaseHelper dbHelper=new DatabseHelper(当前Activity,“数据库名称”):创建一个DatabaseHelper对象;SQLiteDatabase db=dbHelper.getWritableDatabase():写数据的权利;db.insert("表名",null,添加数据values);db.update("表名",values对象,“where id=?”:where子句,new String[]{"1"}:占位符数组,有几个问号数组的长度就是几);Cursor 游标 ;查询中通过游标的cursor.moveToNext()方法向下移动游标,String name=cursor.getString(cursor.getColumnIndex("列名"))取出指定列的是数据;SQLite中不要存太多数据;所以不要太依赖SQLite数据库; cmd-->adb-->adb shell:进入liunx命令, 自己查询liunx命令; 自己查Sql语句

来自Android开发视频教程5(0)

一个程序中都会有多个Activity;一个Activity跳转到另外一个Activity,以及跳到这个Activity要做什么都是有Intent这个对象决定;Intent(意图)的基本作用:1.Component name要启动的组件名称;2.Action 指定被启动的Activity要执行的动作;3.Data 从一个Activity向另一个Activity传送了什么样的数据;4.Category5.Extras 额外的添加信息(是一个键值对)通过Intent传到另一个Activity中6.FlagsActivity中设置布局文件的方法是setContentView(R.layout.布局文件名称)intent.setClass(当前Activity,目标Activity);intent.putExtras(“键”,“值”);此方法为在intent中添加准备传输的数据;startActivity(intent)(启动Activity的方法);onClickListener监听setOnClickListener(设置的监听内部类对象)用于捆绑监听到组件;Intent intent=getIntent()方法是为了在另一个Activity中获取传入的IntentString  value=intent.getStringExtras(“键”);获取通过Intent传进来的数据;Intent可以在多个Activity中传输数据。注:一个Intent在两个Activity中传递数据,并不要求两个Activity在同一个应用程序中; 

来自Android开发视频教程18(0)

文件下载的步骤:1.创建一个HttpURLConnection对象HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();2.获得一个InputStream对象urlConn.getInputStream();3.访问网络的权限android.permission.INTERENT创建一个URL对象: Url url=new Url(" 传进来的下载地址")通过Url获取一个连接对象,即:HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();在通过连接对象获取IO流对象,即 文件:urlConn.getInputStream(); 获取当前设备SD卡的目录:Environment.getExternalStorageDirectory();由于每一部手机的SD卡的目录不一样则使用此方法进行动态获取当前设备SD卡的存储目录;访问SD卡也需要权限:android.permission.WRITE_EXTERNAL_STORAGE;(只有注册此权限才有写入数据的权限)   

来自千锋-java语言教程-02_Java创世纪(0)

编程:人与计算机之间的沟通!编程是一种创造性的工作!人和动物的区别是人会使用工具JDK的安装:到Sun公司网站下载,双击.exe文件安装;JDK的配置:右击我的电脑-->选择属性-->高级设置-->环境变量-->找到path并在其后添加英文分号-->找到java安装路径打开bin拷贝bin文件路径到分号后;在环境变量中新建 -->名称:classpath-->变量值 英文的 .windows+R  打开窗口中输入cmd打开命令行窗口;并在命令行窗口中输入           java -versionCtrl+S  保存;启动命令行--> cd 寻找到文件-->编译javac 文件名.java-->执行java 文件名。1.凡是成对出现的符号最好一次性写一对,比如小括号,中括号,大括号等;2.注意字符的大小写;3.养成良好的缩进习惯(Tab键的使用); 

来自千锋-java语言教程-04_Java的变量(0)

变量的命名规范:一,变量命名语法规范1.应该以字母,下划线或者美元符号开头;2.后面跟字母,下换线,美元符或数字注:不能以数字开头;3.java变量名没有长度限制;4.java变量名对大小写敏感;二,驼峰命名法:1.变量名应该用用意义的英文单词;2.变量名如果只有一个单词,则所有的字母都小写;3.变量名如果由多个英文单词组成,则从第二个单词开始首字母大写;

来自Android开发视频教程4(0)

创建activity的要点1. 一个activity就是一个类,并且这个类要继承activity类2. 需要覆写onCreate方法-当一个activity第一次运行的时候就会调用这个方法3. 每一个activity都需要在AndroidManifest.xml文件中进行配置4. 为activity添加必要的控件

来自Android开发视频教程6(0)

TextView主要是用来显示一个文本信息EditText相当于是可编辑文本框Button按钮Menu 菜单按钮开发需要考虑国际化(不同语言)android应用程序中的value包下可以放置不同语言版本的string.xml。内部类:1.内部类当中可以直接使用外部类的成员变量。2.可以在内部类中使用外部类的成员函数,也可以调用外部类的对象。文本框名.getText().toString();获取文本框中输入的内容;注:一定要记得绑定监听到按钮上,按钮名.setOnClickListener();字符串转整形:Integer.parseInt(字符串名)。Java语法:连接符两端有一端是字符串另一端也会被转为字符串相加;onCreateOptionsMenu(menu);是一个回调函数。当用户点击菜单按钮时调用;menu.add(菜单所在组的ID,当前菜单的ID,菜单项的排序,按钮上显示的内容)添加菜单项;注:显示的内容一定要写到string.xml中;onOptionsItemSeleted(MenuItem item);是一个回调函数。当用户点击某一个菜单项时调用;可根据每一个菜单项执行相应的操作;item.getItemID();用于获取传入的菜单项的ID;

来自Android开发视频教程7(0)

onCreate()Activity第一次被创建时调用onStart()Activity可以被用户看见时调用onReStart()重启onResume()Activity可以获取用户焦点的时候(焦点大概就是你当前要操作的地方.onPasue()暂停(当启动另一个Activity时执行此方法,其中应添加数据保存之类的方法onStop()停止(当此Activity处于不可见时调用onDestroy()销毁(1.明确调用finish()方法时启动;2.系统资源不够用的时候调用Activity在不同状态下会调用其中某些方法;DDMS中的LogCat用于查看输出日志;eg:启动firstActivity:firstActivity----onCreate()-->firstActivity----onStart()-->firstActivity----onResume();启动第secondActivity:firstActivity----onPasue()-->secondActivity----onCreate()-->secondActivity----onStart()-->secondActivity----onResume()-->firstActivity----onStop;从secondActivity点击返回键推到firstActivity:secondActivity----onPasue()-->firstActivity----onReStart()-->firstActivity----onStart()-->firstActivity----onResume()-->secondActivity----onStop()-->secondActivity----onDestory();再次启动secondActivity:firstActivity----onPasue()-->secondActivity----onCreate()-->secondActivity----onStart()-->secondActivity----onResume()-->firstActivity----onStop;注:secondActivity在之前已经被销毁

来自Android开发视频教程8(0)

Task就是任务;A task is a stack of activities.Task就是一个栈,栈中存放了很多个Activity;栈遵循后进先出的原则(不可排序);栈的两个动作:压栈(把对象压入到栈当中);弹栈(把栈当中的第一个对象从栈里面拿出来)。finish()方法是销毁Activity;窗口型的Activity:在AndroidMainfest中指定theme的风格为Theme.Dialog;firstActivity启动:firstActivity----onCreate-->firstActivity---onStart-->firstActivity---onResume;secondActivity启动(窗口型):firstActivity---onPause-->secondActivity----onCreate-->secondActivity----onStart-->secondActivity----onResume;重新回到firstActivity(点击back):secondActivity----onPause-->firstActivity----onResume;在手机操作系统中资源有限:生命周期中易被杀死的是:onPause()onStop()onDestroy()

来自Android开发视频教程9(0)

LinearLayoutandroid:orientation 控制布局方向 <LinerLayout>跟标签<!--注释内容--><TextView></TextView>子标签</LinerLayout>android:id —— 为控件指定相应的ID android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:grivity —— 指定控件的基本位置,比如说居中,居右等位置(注:控件中的内容居中、居右) android:textSize —— 指定控件当中字体的大小(注:文字大小单位sp) android:background —— 指定该控件所使用的背景色,RGB命名法 android:width —— 指定控件的宽度(注:控件宽度单位dp) android:height —— 指定控件的高度(注:控件高度单位dp)注:dp对不同分辨率的屏幕适应能力更好 android:padding* —— 指定控件的内边距,也就是说控件当中的内容(调整内容与边框间的距离) android:sigleLine —— 如果设置为真的话,则将控件的内容在同一行当中进行显示(将内容显示到一行中或换行)weight:相当于控件比例的控制TableLayout: android:stretchColumns 方法是表示控件不能填满父控件(Tab了Layout)时拉伸某一列;注:列的定义是从0开始算的;