欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      黑馬程序員:三大框架11天筆記全之Struts2-day01筆記(合集5篇)

      時(shí)間:2019-05-12 19:36:58下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《黑馬程序員:三大框架11天筆記全之Struts2-day01筆記》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《黑馬程序員:三大框架11天筆記全之Struts2-day01筆記》。

      第一篇:黑馬程序員:三大框架11天筆記全之Struts2-day01筆記

      黑馬程序員:三大框架Struts2-day01筆記

      第1章 框架概述

      什么是框架,為什么使用框架,框架優(yōu)點(diǎn)

      框架(framework)是一個(gè)基本概念上的結(jié)構(gòu),用于去解決或者處理復(fù)雜的問(wèn)題

      框架,即framework。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。簡(jiǎn)單說(shuō)就是使用別人搭好的舞臺(tái),你來(lái)做表演。框架是在特定的領(lǐng)域內(nèi)解決問(wèn)題。優(yōu)點(diǎn)

      重用代碼大大增加,軟件生產(chǎn)效率和質(zhì)量也得到了提高

      使用框架開(kāi)發(fā),它提供統(tǒng)一的標(biāo)準(zhǔn),大大降低了我們的后期維護(hù)。學(xué)習(xí)框架重點(diǎn):了解框架做了什么,我們要在這個(gè)基礎(chǔ)上在做什么事情。

      第2章 java開(kāi)發(fā)中常用框架

      SSH

      (SSM SSI)SSH struts2 spring hibernate SSM(SSI)springmvc spring mybatis(ibatis)

      SSH 它是企業(yè)開(kāi)發(fā)中比較主流的一套架構(gòu)。SSH框架在開(kāi)發(fā)中所處的位置:

      黑馬程序員鄭州中心 編著

      第3章 Struts2框架介紹

      什么是struts2框架,學(xué)習(xí)struts2框架的核心。

      Struts2是一個(gè)基于MVC設(shè)計(jì)模式的Web應(yīng)用框架,它本質(zhì)上相當(dāng)于一個(gè)servlet,在MVC設(shè)計(jì)模式中,Struts2作為控制器(Controller)來(lái)建立模型與視圖的數(shù)據(jù)交互

      Struts2=struts1+webwork

      問(wèn)題:struts2是一個(gè)mvc框架,它的mvc是什么?

      javaweb開(kāi)發(fā)中的mvc,是在jsp的model2模式中提過(guò) Model------javabean View--------jsp Controller----servlet

      黑馬程序員鄭州中心 編著

      核心點(diǎn): 1.攔截器 interceptor 2.Action 3.ognl與valueStack

      在現(xiàn)在開(kāi)發(fā)中與struts2比較類(lèi)似的框架有哪些? Struts1 webwork springmvc jsf

      Struts2框架流程

      黑馬程序員鄭州中心 編著

      第4章 今天內(nèi)容介紹與重點(diǎn)

      今天內(nèi)容:

      一個(gè)簡(jiǎn)單的登錄案例

      在這個(gè)案例中,我們要使用struts2框架怎樣解決

      重點(diǎn): 1.struts2框架如何完成原來(lái)由servlet完成的工作。2.Struts2框架如何完成請(qǐng)求參數(shù)的封裝處理 3.Struts2框架如何完成頁(yè)面跳轉(zhuǎn)。

      黑馬程序員鄭州中心 編著

      第5章 簡(jiǎn)單登錄案例原型

      需要三個(gè)jsp頁(yè)面

      login.jsp

      success.jsp failer.jsp 還需要一個(gè)servlet

      LoginServlet 主要完成的是業(yè)務(wù)邏輯操作。

      login.jsp

      LoginServlet

      黑馬程序員鄭州中心 編著

      第6章 Struts2框架來(lái)完成登錄操作

      6.1 問(wèn)題:為什么使用struts2框架?

      Struts2框架它是一個(gè)在web中應(yīng)用的mvc框架。我們使用strtus2框架來(lái)完成web開(kāi)發(fā)有什么優(yōu)勢(shì)?

      6.2 問(wèn)題:怎樣使用strtuts2框架

      首先要上網(wǎng)下載它的jar包。步驟: 1.導(dǎo)入相關(guān)的jar文件

      2.需要在web.xml文件中配置一個(gè)Filter(只有配置了它才可以使用struts2框架)

      黑馬程序員鄭州中心 編著

      3.struts.xml配置

      4.創(chuàng)建Action來(lái)完成邏輯操作

      6.3 快速入門(mén)

      我們使用的是struts2 2.3.24版本

      我們使用strtus2框架不是直接將它的lib包下的所有的jar文件copy到項(xiàng)目中,而是使用其中的一部分。

      我們可以參考它的示例代碼:

      1.導(dǎo)入13個(gè)jar包

      2.需要在web.xml文件中配置StrutsPrepareAndExecuteFilter 3.創(chuàng)建一個(gè)struts.xml文件,它的位置是可以放置在src下。

      黑馬程序員鄭州中心 編著

      6.3.1 代碼實(shí)現(xiàn) 6.3.1.1 jsp頁(yè)面

      6.3.1.2 Action

      6.3.1.3 struts.xml文件配置

      6.3.2 流程分析

      黑馬程序員鄭州中心 編著

      6.4 使用struts2完成簡(jiǎn)單登錄操作

      1.login.jsp頁(yè)面不變動(dòng)

      2.創(chuàng)建一個(gè)LoginAction來(lái)完成邏輯操作 3.在struts.xml文件中完成配置操作

      問(wèn)題1:在LoginAction中如何得到username與password 可以直接在Action類(lèi)中提供成員屬性,并為其提供get/set方法。就可以得到請(qǐng)求參數(shù)

      問(wèn)題2:如果實(shí)現(xiàn)路徑跳轉(zhuǎn)?

      1.我們可以給action中的方法添加一個(gè)String返回值

      2.在struts.xml配置文件中,在其對(duì)應(yīng)的action配置上通過(guò)來(lái)確定跳轉(zhuǎn)的路徑。

      黑馬程序員鄭州中心 編著

      第7章 Struts2框架執(zhí)行流程

      7.1 Struts2源碼導(dǎo)入

      對(duì)于struts2框架它的源代碼我們主要使用三部分 1.struts2核心部分源代碼

      org.apache.struts2xx

      srccoresrcmainjava

      2.struts2的xwork核心部分源代碼

      srcxwork-coresrcmainjavacomopensymphonyxwork2 3.struts2的插件的源代碼

      srcplugins 7.2 關(guān)于struts.xml配置文件中提示問(wèn)題

      第一步

      在eclipse的window下首選面中查找xml catalog 第二步

      Location:配置本地的dtd文件路徑 key type:選擇URI

      黑馬程序員鄭州中心 編著

      Key: http://struts.apache.org/dtds/struts-2.3.dtd

      注意版本要對(duì)應(yīng),如果你可以上網(wǎng),那么會(huì)自動(dòng)緩存dtd,具有提示功能。

      7.3 執(zhí)行流程介紹

      1.當(dāng)通過(guò)瀏覽器發(fā)送一個(gè)請(qǐng)求

      2.會(huì)被StrutsPrepareAndExecuteFilter攔截

      3.會(huì)調(diào)用strtus2框架默認(rèn)的攔截器(interceptor)完成部分功能 4.在執(zhí)行Action中操作

      5.根據(jù)Action中方法的執(zhí)行結(jié)果來(lái)選擇來(lái)跳轉(zhuǎn)頁(yè)面Resutl視圖

      一般管StrutsPrepareAndExecuteFilter 叫做前端控制器(核心控制器),只有配置了這個(gè)filter我們的strtus2框架才能使用。

      黑馬程序員鄭州中心 編著

      Strtus2的默認(rèn)攔截器(interceptor)它們是在struts-default.xml文件中配置 注意:這上x(chóng)ml文件是在strtus-core.jar包中。默認(rèn)的攔截器是在defaultStack中定義的。

      第8章 Struts2配置詳解

      8.1 Struts2配置文件加載順序

      第一個(gè)加載的是default.properties文件

      位置:strtus2-core.jar包

      org.apache.struts2包下 作用:主要是聲明了struts2框架的常量

      第二個(gè)加載的是一批配置文件

      Strtus-default.xml 位置:struts2-corl.jar

      作用:聲明了interceptor result bean Strtus-plugin.xml 位置:在strtus2的插件包中 作用:主要用于插件的配置聲明 Strtus.xml

      黑馬程序員鄭州中心 編著

      位置:在我們自己的工程中

      作用:用于我們自己工程使用strtus2框架的配置 第三個(gè)加載的是自定義的strtus.properties 位置:都是在自己工程的src下 作用:定制常量 第四自定義配置提供

      第五加載的是web.xml配置文件

      主要是加載strtus2框架在web.xml文件中的相關(guān)配置.第六 bean相關(guān)配置

      重點(diǎn)掌握: 1.Default.properties 2.Struts-default.xml 3.Struts-plugin.xml 4.Strtus.xml 5.web.xml

      8.2 struts.xml文件配置介紹

      8.2.1 package配置

      1.name屬性

      作用:定義一個(gè)包的名稱(chēng),它必須唯一。

      黑馬程序員鄭州中心 編著

      2.namespace屬性 作用:主要是與action標(biāo)簽的name屬性聯(lián)合使用來(lái)確定一個(gè)action 的訪(fǎng)問(wèn)路徑

      3.extends屬性 作用:指定繼承自哪個(gè)包。一般值是strtus-default strtus-default包是在strtus-default.xml文件中聲明的。

      4.abstruct屬性 它代表當(dāng)前包是一個(gè)抽象的,主要是用于被繼承

      8.2.2 action配置

      1.name屬性 作用:主要是與package的namespace聯(lián)合使用來(lái)確定一個(gè)action的訪(fǎng)問(wèn)路 徑

      2.class屬性

      作用:用于指示當(dāng)前的action類(lèi)

      3.method屬性

      作用:用于指示當(dāng)前的action類(lèi)中的哪個(gè)方法執(zhí)行

      8.2.3 result配置

      它主要是用于指示結(jié)果視圖

      1.name屬性 作用是與action類(lèi)的method方法的返回值進(jìn)行匹配,來(lái)確定跳轉(zhuǎn)路徑 2.type屬性 作用是用于指定跳轉(zhuǎn)方式

      8.2.4 擴(kuò)展

      關(guān)于action配置中的class與method的默認(rèn)值以及result中的name與type 默認(rèn)值問(wèn)題

      原因:strtus-default.xml文件中配置

      黑馬程序員鄭州中心 編著

      它的作用就是當(dāng)一個(gè)請(qǐng)求來(lái)時(shí),如果查找不到指定的class及對(duì)應(yīng)的method就會(huì)執(zhí)行 ActionSupport類(lèi)中的execute方法。

      在這個(gè)類(lèi)的execute方法中默認(rèn)返回的是”success”

      也就是說(shuō),result的name屬性默認(rèn)值是success,默認(rèn)的跳轉(zhuǎn)方式是請(qǐng)求轉(zhuǎn)發(fā) dispatcher

      8.3 常量配置

      default.properties文件中定義了struts2框架常用常量.問(wèn)題:我們?cè)鯓涌梢远x常量

      1.可以在src下創(chuàng)建一個(gè)strtus.properties配置文件 2.可以在web.xml文件中配置

      3.可以直接在strtus.xml文件中定義常量(推薦)

      注意:后加載的配置文件中的常量會(huì)將先加載的常量覆蓋

      第9章 Struts2的Action詳解

      Struts2中的action,主要是完成業(yè)務(wù)邏輯操作。Action替代在servlet中完成的作用。

      黑馬程序員鄭州中心 編著

      Action的學(xué)習(xí)主要有兩點(diǎn)

      1.如何創(chuàng)建一個(gè)struts2的action 2.如果訪(fǎng)問(wèn)一個(gè)struts2的action

      1. Action類(lèi)創(chuàng)建方式(三種)1.創(chuàng)建一個(gè)pojo類(lèi)

      Pojo(plani Ordinary java object)簡(jiǎn)單的java對(duì)象 Pojo類(lèi)就是沒(méi)有實(shí)現(xiàn)任何接口沒(méi)有繼承任何類(lèi) 優(yōu)點(diǎn):無(wú)耦合

      缺點(diǎn):所有的功能都要自己完成

      2.創(chuàng)建一個(gè)類(lèi)實(shí)現(xiàn)一個(gè)Action接口

      com.opensymphony.xwork2.Action

      在Action接口中定義了五個(gè)常量,一個(gè)execute方法 五個(gè)常量:它們是默認(rèn)的五個(gè)結(jié)果視圖: ERROR : 錯(cuò)誤視圖

      INPUT: 它是struts2框架中interceptor中發(fā)現(xiàn)問(wèn)題后會(huì)訪(fǎng)問(wèn)的一個(gè)視圖 LOGIN:它是一個(gè)登錄視圖,可以在權(quán)限操作中使用

      黑馬程序員鄭州中心 編著

      NONE:它代表的是null,什么都不做(也不會(huì)做跳轉(zhuǎn)操作)SUCCESS:這是一個(gè)成功視圖 優(yōu)點(diǎn):耦合度低

      缺點(diǎn):還是需要自己來(lái)完成功能

      3.創(chuàng)建一個(gè)類(lèi)繼承ActionSupport類(lèi)

      com.opensymphony.xwork2.ActionSupport ActionSupport類(lèi)也實(shí)現(xiàn)了Action接口。我們?cè)陂_(kāi)發(fā)中一般會(huì)使用這種方案: 優(yōu)點(diǎn):具有豐富的功能,例如

      表單校驗(yàn) 錯(cuò)誤信息設(shè)置

      國(guó)際化 缺點(diǎn):耦合度高

      9.1 action的訪(fǎng)問(wèn)方式

      1.直接通過(guò)標(biāo)簽來(lái)配置,通過(guò)method來(lái)指定訪(fǎng)問(wèn)的方法,如果method沒(méi)有,默認(rèn)訪(fǎng)問(wèn)的是execute方法。

      2.簡(jiǎn)化的action訪(fǎng)問(wèn)方式,可以使用*通配符來(lái)訪(fǎng)問(wèn)。

      這種方式的缺點(diǎn):不建議使用過(guò)多的*號(hào),它帶來(lái)程序閱讀障礙,不便于理解 使用*來(lái)簡(jiǎn)化操作方案,它對(duì)名稱(chēng)規(guī)范必須進(jìn)行一個(gè)統(tǒng)一。

      黑馬程序員鄭州中心 編著

      9.2 擴(kuò)展--動(dòng)態(tài)方法調(diào)用

      這是strtus2提供的動(dòng)態(tài)方法調(diào)用。

      注意:對(duì)于strtus2的動(dòng)態(tài)方法調(diào)用,要想使用我們必須配置一個(gè)常量來(lái)開(kāi)啟動(dòng)態(tài)方法調(diào)用

      這代表動(dòng)態(tài)方法調(diào)用沒(méi)有開(kāi)啟

      黑馬程序員鄭州中心 編著

      個(gè)人不建議使用動(dòng)態(tài)方法調(diào)用

      第10章 Struts2框架封裝數(shù)據(jù)

      主要解決的問(wèn)題:是在action中如果獲取請(qǐng)求參數(shù)

      主要有兩種方式: 1.屬性驅(qū)動(dòng)

      a.直接在action類(lèi)中提供與請(qǐng)求參數(shù)匹配屬性,提供get/set方法

      b.在action類(lèi)中創(chuàng)始一個(gè)javaBean,對(duì)其提供get/set,在請(qǐng)求時(shí)頁(yè)面上要進(jìn)行修改,例如 user.username user.password ,要使用ognl表達(dá)式

      以上兩種方式的優(yōu)缺點(diǎn): 第一種比較簡(jiǎn)單,在實(shí)際操作我們需要將action的屬性在賦值給模型(javaBean)去操作 第二種:不需要在直接將值給javaBean過(guò)程,因?yàn)橹苯訉?shù)據(jù)封裝到了中。它要求在頁(yè)面上必須使用ognl表達(dá)式,就存在頁(yè)面不通用問(wèn)題。javaBean

      2.模型驅(qū)動(dòng)

      步驟: 1.讓Action類(lèi)要實(shí)現(xiàn)一個(gè)指定接口ModelDriven 2.實(shí)例化模型對(duì)象(就是要new出來(lái)javaBean)3.重寫(xiě)getModel方法將實(shí)例化的模型返回。

      黑馬程序員鄭州中心 編著

      對(duì)于模型驅(qū)動(dòng)它與屬性驅(qū)動(dòng)對(duì)比,在實(shí)際開(kāi)發(fā)中使用比較多,模型驅(qū)動(dòng)缺點(diǎn),它只能對(duì)

      一個(gè)模型數(shù)據(jù)進(jìn)行封裝。

      第11章 總結(jié)

      今天主要內(nèi)容是圍繞著簡(jiǎn)單的登錄案例來(lái)講解: 1.關(guān)于strtus2框架的環(huán)境搭建 2.關(guān)于strtus2框架配置 3.關(guān)于strtus2框架請(qǐng)求參數(shù)封裝 4.關(guān)于strtus2框架的路徑跳轉(zhuǎn)

      關(guān)于action訪(fǎng)問(wèn)的配置

      黑馬程序員鄭州中心 編著

      namespace=””

      extends=””>

      class=””

      method=””>

      路徑

      關(guān)于路徑跳轉(zhuǎn)問(wèn)題: 是通過(guò)來(lái)配置跳轉(zhuǎn)的路徑.它的name屬性是與action中的方法的返回值進(jìn)行對(duì)比的。它的type屬性可以取哪些值?

      默認(rèn)值是dispatcher 它代表的是請(qǐng)求轉(zhuǎn)發(fā)。針對(duì)于jsp頁(yè)面 redirect 它代表的是重定向

      針對(duì)于jsp頁(yè)面

      chain 它類(lèi)似于請(qǐng)示轉(zhuǎn)發(fā),只不過(guò)它是針對(duì)于action跳轉(zhuǎn).redirectAction 它類(lèi)似于重定向

      針對(duì)于action 關(guān)于路徑跳轉(zhuǎn)的配置

      可以直接在

      下創(chuàng)建全局的result

      黑馬程序員鄭州中心 編著

      黑馬程序員鄭州中心 編著

      第二篇:【黑馬程序員】Java基礎(chǔ) : Java語(yǔ)句筆記

      【黑馬程序員】Java基礎(chǔ) : Java語(yǔ)句筆記

      摘要: Java基礎(chǔ)—java語(yǔ)句這些是黑馬程序員java基礎(chǔ)入門(mén)的一個(gè)很重要的內(nèi)容。今天主要給大家簡(jiǎn)單講解一下Java基礎(chǔ)—java語(yǔ)句,以后會(huì)慢慢講解黑馬程序員的課程內(nèi)容!

      關(guān)鍵語(yǔ)句介紹

      一、while 語(yǔ)句 一般形式:

      whi l e(條件表達(dá)式){ 語(yǔ)句體 ……… } 執(zhí)行過(guò)程:

      條件表達(dá)式為真,執(zhí)行語(yǔ)句體。否則,退出!

      二、do while 語(yǔ)句 一般形式: do { 語(yǔ)句體 …….} while(條件表達(dá)式);執(zhí)行過(guò)程:

      先執(zhí)行一次語(yǔ)句體,判斷 條件表達(dá)式是否為真,為真再執(zhí)行do語(yǔ)句中的語(yǔ)句體。為假,退出。

      需要注意:與whi l e語(yǔ)句區(qū)別

      黑馬程序員合肥中心 編著

      1.while(條件表達(dá)式)后面有分號(hào);2.不管條件表達(dá)式是否為真,語(yǔ)句體均會(huì)執(zhí)行一次。

      三、for 語(yǔ)句 一般形式:

      for(子句 1;子句 2;子句 3){ 語(yǔ)句體 …… } 執(zhí)行過(guò)程:

      四、break、cont inue 語(yǔ)句 break 退出所在循環(huán) : int stopHere = 5;for(int i=1;i<8;i++){ if(i == stopHere){ break;} System.out.println(“i = ” + i);

      黑馬程序員合肥中心 編著

      } //打印結(jié)果:5,6,7,8均沒(méi)有打印出來(lái)。

      需要注意的一個(gè)問(wèn)題: int stopHere = 5;for(int i = 1;i < 8;i + +){ if(i = = stopHere){ / /語(yǔ)句體 } break;System.out.println(“i = ” + i);} 這個(gè)時(shí)候編譯器會(huì)報(bào)錯(cuò):無(wú)效的 System.out 輸出語(yǔ)句。冷靜分析一下:

      break 語(yǔ)句會(huì)結(jié)束循環(huán),所以不會(huì)再去執(zhí)行 System.out 輸出語(yǔ)句。編譯會(huì)認(rèn)為你在多此一舉,sorry 報(bào)個(gè)錯(cuò)!

      continue 退出本次循環(huán),不會(huì)退出整個(gè)循環(huán): int skipHere = 5;for(int i = 1;i < 8;i + +){ if(i = = skipHere){ continue;}

      黑馬程序員合肥中心 編著

      System.out.println(“i = ” + i);} / /打印結(jié)果:除了5沒(méi)有打印出來(lái)。

      i = 1 i = 2

      五、switch 語(yǔ)句 一般形式: switch(常量){ case 表達(dá)式1:語(yǔ)句體1;break;case 表達(dá)式2:語(yǔ)句體2;break;.....default : 語(yǔ)句體n;break;}

      執(zhí)行過(guò)程: 執(zhí)行過(guò)程:

      case 根據(jù)自己的表達(dá)式看是否匹配常量,如果匹配就執(zhí)行語(yǔ)句體,否則執(zhí)行 default 語(yǔ)句。

      case 執(zhí)行類(lèi)似于并行操作,不是順序操作。所以各個(gè)表達(dá)式的值不可以相同。

      黑馬程序員合肥中心 編著

      哪個(gè) case 匹配常量就會(huì)執(zhí)行自己的語(yǔ)句體,不會(huì)再去尋找其他 case 語(yǔ)句。注意:

      <1> case 穿透:省去break關(guān)鍵字

      [AppleScript] 純文本查看 復(fù)制代碼 ?

      01 /**

      02 * @author 傳智播客 03 */

      04 int i = 10;05 switch(i){ 06 case 10:

      07 System.out.println(“ A”);08 //break;09 case 5: System.out.println(“ B”);11 //break;12 case 7: System.out.println(“ C”);14 //break;15 default : System.out.println(“ error”);17 break;18 }//打印結(jié)果:A B C error

      <2> 在 Java 編程中 switch 括號(hào)中的常量的數(shù)據(jù)類(lèi)型只可以為 int 類(lèi)型或者是 byte、char、short(因?yàn)?byte、char、short 可以自動(dòng)提升為 int),常量類(lèi)型不可以是 long、float 和 double 等數(shù)據(jù)類(lèi)型。<3> 多個(gè) case 可以合并 , 相當(dāng)于 “ 或 ”,例如下面 i 等于 10、5、7 都可以執(zhí)行打印語(yǔ)句。

      [AppleScript] 純文本查看 復(fù)制代碼 ?

      01 /**

      02 * @author 傳智播客 03 */

      04 int i = 5;05 switch(i){ 06 case 10: 07 case 5: 08 case 7:

      09 System.out.println(“ C”);10 break;11 default : System.out.println(“ error”);13 break;

      黑馬程序員合肥中心 編著 }//打印結(jié)果:C <4> default 語(yǔ)句可以省,但是不推薦,他后面的 break 可省 <5> case 或者 default 子句中可以寫(xiě)多條語(yǔ)句 case 7: System.out.println(“ C”);if(i == 5){ System.out.println(“ i = ” +i);} break;<6> case 或者 default 子句中還可以嵌套 switch 或者其他語(yǔ)句

      六、return 語(yǔ)句

      終止方法的運(yùn)行并指定要返回的數(shù)據(jù)。兩種形式:

      <1> return 表達(dá)式;

      <2> return ;沒(méi)有任何數(shù)據(jù)直接返回,結(jié)束函數(shù)(方法)的執(zhí)行。

      七、if 語(yǔ)句

      一般形式:

      1.if(條件表達(dá)式){ 語(yǔ)句體} 2.if(條件表達(dá)式){ 語(yǔ)句體} else{語(yǔ)句體 } 3. if(條件表達(dá)式1){ 語(yǔ)句體} else if(條件表達(dá)式2){語(yǔ)句體 } else {語(yǔ)句體 }

      特別注意:形式3,else與其最近的上個(gè)if 配對(duì)。例子:

      [AppleScript] 純文本查看 復(fù)制代碼 ?

      黑馬程序員合肥中心 編著

      01 /**

      02 * @author 傳智播客 03 */

      04 public class TestIF {

      05 public static void main(String[] args){ 06 int i = 30;07 if(i < 20){

      08 System.out.println(“<20”);09 } else if(i < 50){ System.out.println(“<50”);11 } else if(i < 80){ System.out.println(“<80”);13 } else System.out.println(“>=80”);15 System.out.println(“黑馬程序員!”);16 }

      如果大家想學(xué)習(xí)java基礎(chǔ)的知識(shí),歡迎大家可以去傳智播客官網(wǎng)http://004km.cn/去了解java基礎(chǔ)知識(shí)!

      黑馬程序員合肥中心 編著

      第三篇:黑馬程序員android開(kāi)發(fā)筆記(一)

      01、什么是3G 02、android系統(tǒng)簡(jiǎn)介 03、android背景介紹 04、android的framewor簡(jiǎn)介 05、兩種虛擬機(jī)的比較 06、sdk的下載以及簡(jiǎn)介 07、創(chuàng)建android模擬器 08、ddms簡(jiǎn)介

      09、platform-tools的簡(jiǎn)介及常見(jiàn)adb指令

      10、android項(xiàng)目的目錄結(jié)構(gòu)

      11、android下apk安裝的過(guò)程

      12、常見(jiàn)的adb指令介紹

      13、創(chuàng)建模擬器遇到的常見(jiàn)錯(cuò)誤

      14、電話(huà)撥號(hào)器

      15、點(diǎn)擊事件的四種寫(xiě)法

      16、短信發(fā)送器

      17、相對(duì)布局&單位介紹

      18、現(xiàn)形布局&布局的組合

      19、表格布局&絕對(duì)布局 20、幀布局

      21、測(cè)試相關(guān)概念

      22、android下junit測(cè)試框架配置

      23、logcat簡(jiǎn)介

      24、保存文件到手機(jī)內(nèi)存

      25、android下文件訪(fǎng)問(wèn)的權(quán)限

      26、保存文件到SD卡中

      27、分析setting源代碼獲取SD卡大小

      28、_sharePreference入門(mén)

      29、xml文件的序列化 30、采用pull解析xml文件

      31、采用斷電調(diào)試的方法觀察pull解析的的流程

      32、android下創(chuàng)建一個(gè)sqllite數(shù)據(jù)庫(kù)

      33、sql語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查

      34、系統(tǒng)api實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查&Sqlite3工具的使用

      35、數(shù)據(jù)庫(kù)的事物

      36、listView入門(mén)

      37、采用layoutInflater打氣筒創(chuàng)建一個(gè)view對(duì)象

      38、采用數(shù)據(jù)適配器ArryAdapter

      39、常用數(shù)據(jù)適配器simpleAdapter 40、數(shù)據(jù)適配器總結(jié)

      41、內(nèi)容提供者簡(jiǎn)介

      42、內(nèi)容提供者的實(shí)現(xiàn)

      43、短信的備份

      44、插入一條記錄到系統(tǒng)短信應(yīng)用

      45、內(nèi)容觀察者

      46、獲取系統(tǒng)的聯(lián)系人信息

      47、保存聯(lián)系人到系統(tǒng)通訊錄

      48、讀取聯(lián)系人的一個(gè)小細(xì)節(jié)

      49、網(wǎng)絡(luò)圖片查看器

      50、anr產(chǎn)生的原理&如何避免

      51、android消息機(jī)制入門(mén)

      52、網(wǎng)絡(luò)html查看器

      53、字符亂碼問(wèn)題的處理

      54、采用get方式提交數(shù)據(jù)到服務(wù)器

      55、采用post方式提交數(shù)據(jù)到服務(wù)器

      56、提交數(shù)據(jù)到服務(wù)器中文亂碼問(wèn)題的處理

      57、采用httpclient提交數(shù)據(jù)到服務(wù)器

      58、異步http框架簡(jiǎn)介&實(shí)現(xiàn)原理

      59、異步http框架提交數(shù)據(jù)到服務(wù)器 60、上傳文件到服務(wù)器

      61、smartimageview&常見(jiàn)開(kāi)源代碼 62、多線(xiàn)程下載的原理 63、多線(xiàn)程斷點(diǎn)下載的原理

      64、多線(xiàn)程java代碼移植到android 65、多線(xiàn)程下載文本頁(yè)面的更新 66、顯示意圖激活另一個(gè)activity 67、隱式意圖激活另一個(gè)activity 68、隱式意圖的配置

      69、隱式意圖和顯示意圖的使用場(chǎng)景 70、在不同activity之間數(shù)據(jù)傳遞 71、activity的聲明周期 72、activity的啟動(dòng)模式

      73、activity橫豎屏切換的聲明周期 74、開(kāi)啟新的activity獲取他的返回值 75、請(qǐng)求碼和結(jié)果碼的作用 76、利用廣播實(shí)現(xiàn)ip撥號(hào) 77、短信竊聽(tīng)器

      78、自定義廣播時(shí)間&發(fā)送自定義廣播&廣播接受者優(yōu)先級(jí) 79、采用服務(wù)執(zhí)行長(zhǎng)期后臺(tái)操作 80、采用服務(wù)竊聽(tīng)電話(huà)&服務(wù)的聲明周期 81、android進(jìn)程優(yōu)先級(jí)&為什么使用服務(wù) 82、綁定方式開(kāi)啟服務(wù)&調(diào)用服務(wù)的方法 83、服務(wù)的聲明周期(混合開(kāi)啟 84、采用aidl綁定遠(yuǎn)程服務(wù)

      85、代碼注冊(cè)廣播接受者&利用廣播調(diào)用服務(wù)的辦法 86、加載大圖片到內(nèi)存 87、獲取圖片exif信息 88、從gallery獲取圖片 89、圖片畫(huà)畫(huà)板 90、扒開(kāi)美女衣服 91、圖片的縮放 92、圖片的旋轉(zhuǎn)

      93、圖片的平移&鏡面&倒影效果 94、圖片的合成 95、圖片的顏色處理 96、多媒體播放api簡(jiǎn)介 97、人臉識(shí)別

      98、mediaplayer的生命周期 99、soundpoo簡(jiǎn)介

      100、sufaceview的生命周期 101、播放在線(xiàn)視頻

      102、視頻播放器進(jìn)度的處理 103、調(diào)用系統(tǒng)照相機(jī)拍照和錄像 104、采用camera拍照 105、常見(jiàn)對(duì)話(huà)框 106、notification入門(mén) 107、菜單

      108、android下的樣式 109、android下的主題

      110、代碼編寫(xiě)ui 111、html創(chuàng)建ui 112、幀動(dòng)畫(huà)

      113、代碼創(chuàng)建創(chuàng)建的tween動(dòng)畫(huà) 114、xml文件定義動(dòng)畫(huà) 115、傳感器簡(jiǎn)介 116、117、殺死進(jìn)程 118、apk的安裝 119、應(yīng)用程序的反編譯 120、動(dòng)態(tài)創(chuàng)建fragment 121、用fragment創(chuàng)建一個(gè)選項(xiàng)卡 122、fragment的向下兼容性 123、fragment的生命周期 124、fragment之間的通訊 125、應(yīng)用程序國(guó)際化

      04、android的framewor簡(jiǎn)介

      Wap:wait and play Wireless Makeup Language(WML)精簡(jiǎn)的html語(yǔ)言 Applications:android自帶的基本上層應(yīng)用 Aplication framework:應(yīng)用程序框架 Librarics: Linux lernel:

      05、兩種虛擬機(jī)的比較

      編譯后文件格式:

      jvm:.java->.class->.jar dalvik vm:.java->.dex->.odex 基于的架構(gòu):

      jvm:基于棧的架構(gòu)

      dalvik vm:基于寄存器的架構(gòu)

      Cpu直接訪(fǎng)問(wèn)寄存器因此dalvik虛擬機(jī)的效率比jvm高

      06、sdk的下載以及簡(jiǎn)介

      ->獲取sdk工具包(sdk:standard develope kits)->ADT(android develop tools,實(shí)際上是eclipse的插件)SDK具體內(nèi)容

      Android 4.2.2(API16)

      ->SDK Plateform:開(kāi)發(fā)時(shí)使用到的jar包->Samples for sdk:

      ->ARM EABI V7a System Image:模擬器運(yùn)行時(shí)的鏡像->Intel n86 Aton System:模擬器運(yùn)行時(shí)的鏡像->MIPS System Image:模擬器運(yùn)行時(shí)的鏡像->google APIs:google提供的jar包,可以直接使用google提供的一些API->source for android SDK:SDK全部的源代碼 Extrals:

      ->tools:開(kāi)發(fā)的工具

      ->support library:實(shí)現(xiàn)高版本的android向下的兼容->google Admed Ads SDK:gongle提供的廣告插件->Analyties App Irackiong SDK:應(yīng)用的用戶(hù)分析->cloud message:云消息

      ->gongle play service:收費(fèi)服務(wù)

      ->google USB Driver:真實(shí)的設(shè)備驅(qū)動(dòng)

      開(kāi)發(fā)時(shí):基于4.0,兼容2.2、2.3.3

      07、創(chuàng)建android模擬器

      avd:android virture developer VGA:480*640(電視的標(biāo)準(zhǔn)分辨率)QVGA:240*320(四分之一)HVGA:320*480(一半)WVGA:480*800(width)FWVGA:480*854(更寬)

      08、ddms簡(jiǎn)介

      ddms:模擬器不支持中文,因此發(fā)送中文會(huì)顯示不出來(lái)

      09、platform-tools的簡(jiǎn)介及常見(jiàn)adb指令

      Android調(diào)試橋:內(nèi)部實(shí)現(xiàn)就是socket讓兩個(gè)系統(tǒng)之間實(shí)現(xiàn)數(shù)據(jù)交互

      ->reset adb:模擬器找不到時(shí)候可以重啟->adb device:列出所有的連接的設(shè)備->adb kill-server:殺死adb調(diào)試橋->adb start-server 啟動(dòng)adb調(diào)試橋 dx.bat:將.class文件打包

      10、android項(xiàng)目的目錄結(jié)構(gòu)

      一:SDK的目錄結(jié)構(gòu)

      ->Samples->Api demo:根據(jù)API demo(模擬器上面可以看見(jiàn))的效果可以在sample中看見(jiàn)

      相應(yīng)的代碼

      ->Source:jar包所有的sdk源代碼都在這個(gè)文件夾里->SystemImage:系統(tǒng)鏡像

      ->temp:下載更新臨時(shí)存儲(chǔ)的文件夾,一般是空的->tools:emulater.ext 不同版本的模擬器

      二:New Android Application->theme:留給以后作為擴(kuò)展,現(xiàn)在并沒(méi)有太大的作用->target SDK:一般選擇高版本,因?yàn)楦甙姹緦?duì)下兼容

      ->mark project as a library:一般不選擇,意思是將這個(gè)項(xiàng)目提供一個(gè)

      jar包供別人使用 三:文件夾目錄

      .setting:設(shè)置目錄

      assets:資產(chǎn)目錄,存放一些文件,這些文件會(huì)被原封不動(dòng)打包到應(yīng)用程序的 apk中

      bin:

      gen:自動(dòng)生成的目錄

      ->builderConfig.java:生成的配置信息->R.java: Android 4.1.2->android.jar開(kāi)發(fā)環(huán)境,jar包

      可以在properties中修改,jar包就是SDK

      011、Android下apk的安裝過(guò)程

      一、Android安裝過(guò)程分析:

      ->setContentView:甚至view的對(duì)象,把里面的xml文件加載到

      ->在project中選擇build automaticly會(huì)自動(dòng)把文件生成字節(jié)碼文件,.class $代表的class文件生成的是內(nèi)部類(lèi)->dex.bat文件會(huì)把.class文件生成.dex文件

      ->apk壓縮文件解壓內(nèi)部?jī)?nèi)容

      ->META-INF: 應(yīng)用程序的簽名

      eclipse的調(diào)試簽名文件

      ->res:資源文件

      ->classes.dex:class文件

      ->resources.arsc:資源ID映射

      ->android軟件安裝的過(guò)程:

      ->拷貝xxx.apk帶/data/app/xxx-1.apk->在/data/data目錄下創(chuàng)建一個(gè)文件夾,文件夾名稱(chēng)當(dāng)前應(yīng)用程序的報(bào)名

      012、常見(jiàn)adb指令

      前提:

      ->設(shè)備連接上電腦而且驅(qū)動(dòng)安裝正常,如果安裝不正常的話(huà),會(huì)有黃色的問(wèn)號(hào)顯示;

      ->設(shè)備上打開(kāi)USB調(diào)試;

      指令:

      ->adb device(如果啟動(dòng)發(fā)現(xiàn)這個(gè)程序沒(méi)有安裝會(huì)自動(dòng)安裝)->adb kill-server->adb start-server->adb uninstall <包名>->adb-s emulator-5554 install c:usersadministratorhello.apk 如果有多個(gè)設(shè)備的話(huà),如果不指定安裝的是哪個(gè)設(shè)備程序會(huì)報(bào)錯(cuò)->adb push haha.prop /sdcard/haha.txt 將文件移到

      (360管家,豌豆莢之類(lèi)的軟件他們也是用的adb指令,倘若電腦上裝這些軟件的話(huà),會(huì)因?yàn)閮蓚€(gè)adb指令搶端口號(hào)而掛掉)(adb版本之間兼容不是很好,經(jīng)常報(bào)錯(cuò)可以考慮下版本的問(wèn)題)->adb shell:遠(yuǎn)程連接到了android的linux終端

      ls:顯示文件夾

      ps:顯示正在運(yùn)行的程序 ping:網(wǎng)絡(luò)連通性

      013、創(chuàng)建模擬器遇到的常見(jiàn)錯(cuò)誤

      ->路徑最好不要有中文:

      ->應(yīng)用安裝不上,或者安裝模擬器的時(shí)候開(kāi)啟一個(gè)新的模擬器:

      可能是模擬器的資源被占用,模擬器在運(yùn)行的時(shí)候其實(shí)占用著硬盤(pán)上面的一個(gè)文件,這個(gè)文件位于工作空間.android/avd/iphone.avd 里面會(huì)有鏡像文件,當(dāng)一個(gè)模擬器開(kāi)啟起來(lái)了,就給你創(chuàng)建一個(gè)文件夾.knock的文件夾,代表著這個(gè)模擬器被鎖定了,如果把模擬器關(guān)掉,就沒(méi)有程序占據(jù)這幾個(gè)鏡像資源了,那么這幾個(gè)程序就會(huì)被自動(dòng)刪除。通常情況下不會(huì)出問(wèn)題,開(kāi)啟時(shí)候創(chuàng)建文件,關(guān)閉時(shí)關(guān)閉文件,但是當(dāng)電腦出現(xiàn)不正常狀態(tài)時(shí):比如藍(lán)屏,停電關(guān)機(jī)時(shí)候這些資源還沒(méi)來(lái)得及刪除,模擬器就關(guān)閉了,因此開(kāi)啟時(shí)這些資源仍在,程序默認(rèn)模擬器被占用,因此會(huì)重新開(kāi)啟一個(gè)模擬器。

      ->模擬器沒(méi)有信號(hào):

      模擬器用socket橋接在電腦上

      終結(jié)解決方案是給電腦連上網(wǎng),分配一個(gè)IP->常見(jiàn)命令操作:

      14、電話(huà)撥號(hào)器

      ->新建文件

      ->界面設(shè)置:文本框、點(diǎn)擊按鈕

      ->:一旦獲得焦點(diǎn),會(huì)立刻彈出,輸入文本的軟鍵盤(pán)->ctrl+x刪除->ctrl+1提示

      ->設(shè)置點(diǎn)擊事件:找到空間,然后設(shè)置點(diǎn)擊事件,再點(diǎn)擊事件里面獲得了另外一

      個(gè)空間的數(shù)據(jù),激活一個(gè)intent->獲得權(quán)限:清單文件中添加uses permision

      15、點(diǎn)擊事件的四種寫(xiě)法

      ->電話(huà)撥號(hào)器的優(yōu)化:

      每次撥打電話(huà)都會(huì)執(zhí)行的操作是:查找控件,然后找到控件的文本,撥打電

      話(huà)。其實(shí)每次撥打電話(huà)文本控件已經(jīng)創(chuàng)建好了沒(méi)有必要每次查找按鈕之后再 查詢(xún)控件。

      package cn.wqrt.mobile;

      import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

      public class MainActivity extends Activity {

      private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(new MyListener());}

      private class MyListener implementsandroid.view.View.OnClickListener{

      @Override

      public void onClick(View arg0){

      String number = et_number.getText().toString().trim();//去除回車(chē)和空格

      if(TextUtils.isEmpty(number)){

      Toast.makeText(MainActivity.this, “號(hào)碼不能為空”, Toast.LENGTH_SHORT).show();

      return;

      }

      Intent intent = new Intent();

      intent.setAction(intent.ACTION_CALL);

      intent.setData(Uri.parse(“tel:”+number));

      startActivity(intent);

      }

      }

      @Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;} }

      ->

      1、點(diǎn)擊事件的四種寫(xiě)法:

      ->給按鈕注冊(cè)點(diǎn)擊事件:創(chuàng)建一個(gè)內(nèi)部類(lèi)定義點(diǎn)擊事件。具體代碼見(jiàn)上

      button.setOnClickListener(new MyListener());

      ->

      2、采用匿名內(nèi)部類(lèi)創(chuàng)建點(diǎn)擊事件:

      button.setOnClickListener(new OnClickListener()){

      package cn.wqrt.mobile;

      import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

      public class MainActivity extends Activity {

      private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(new OnClickListener(){

      @Override

      public void onClick(View arg0){

      // TODO 自動(dòng)生成的方法存根

      callPhone();

      }

      });}

      @Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

      private void callPhone(){

      String number = et_number.getText().toString().trim();//去除回車(chē)和空格

      if(TextUtils.isEmpty(number)){

      Toast.makeText(MainActivity.this, “號(hào)碼不能為空”, Toast.LENGTH_SHORT).show();

      return;

      }

      Intent intent = new Intent();

      intent.setAction(intent.ACTION_CALL);

      intent.setData(Uri.parse(“tel:”+number));

      startActivity(intent);} } }

      ->

      3、如果有很多的按鈕點(diǎn)擊事件,建議用這種方式:讓Activity實(shí)現(xiàn)點(diǎn)擊 事件的接口,每個(gè)按鈕點(diǎn)擊事件都設(shè)置成this,讓該類(lèi)實(shí)現(xiàn) OnClickListener然后進(jìn)行判斷。package cn.wqrt.mobile;

      import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

      public class MainActivity extends Activity implements OnClickListener {

      private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(this);}

      @Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

      private void callPhone(){

      String number = et_number.getText().toString().trim();//去除回車(chē)和空格

      if(TextUtils.isEmpty(number)){

      Toast.makeText(MainActivity.this, “號(hào)碼不能為空”, Toast.LENGTH_SHORT).show();

      return;

      }

      Intent intent = new Intent();

      intent.setAction(intent.ACTION_CALL);

      intent.setData(Uri.parse(“tel:”+number));

      startActivity(intent);}

      @Override public void onClick(View v){

      // TODO 自動(dòng)生成的方法存根

      switch(v.getId()){

      case R.id.bt_dial:

      callPhone();

      break;

      } } }->

      4、在布局文件中綁定一個(gè)點(diǎn)擊的方法,如果點(diǎn)擊按鈕就會(huì)調(diào)用這個(gè)方法,通

      過(guò)反射技術(shù)試圖調(diào)用這個(gè)方法

      布局文件中設(shè)置: package cn.wqrt.mobile;

      import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

      public class MainActivity extends Activity {

      private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);

      }

      @Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

      public void dialButtonClick(View v){ callPhone();}

      private void callPhone(){

      String number = et_number.getText().toString().trim();//去除回車(chē)和空格

      if(TextUtils.isEmpty(number)){

      Toast.makeText(MainActivity.this, “號(hào)碼不能為空”, Toast.LENGTH_SHORT).show();

      return;

      }

      Intent intent = new Intent();

      intent.setAction(Intent.ACTION_CALL);

      intent.setData(Uri.parse(“tel:”+number));

      startActivity(intent);} }

      16、短信發(fā)送器

      ->界面的設(shè)計(jì):兩個(gè)large Text,一個(gè)Button

      android:textColor 設(shè)置字體顏色

      android:singleLine=“true” 設(shè)置是否是單行

      android:lines=“5” 設(shè)置行數(shù)

      windows下面的顏色是GBR,而android下需要輸入的格式確實(shí)

      RGB,所以需要轉(zhuǎn)換

      adb默認(rèn)設(shè)置time out為5秒->內(nèi)容設(shè)計(jì):按鈕-文本->判斷->發(fā)送

      導(dǎo)包的時(shí)候千萬(wàn)別導(dǎo)到gsm包,否則會(huì)顯示過(guò)時(shí);

      發(fā)送沒(méi)有歷史記錄 package com.example.sms;

      import java.util.ArrayList;

      import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

      public class MainActivity extends Activity implements OnClickListener {

      private EditText et_number;private EditText et_content;

      @Override protected void onCreate(Bundle savedInstanceState){

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      Button button =(Button)findViewById(R.id.bt_send);

      et_number =(EditText)findViewById(R.id.et_number);

      et_content =(EditText)findViewById(R.id.et_content);

      button.setOnClickListener(this);}

      @Override public boolean onCreateOptionsMenu(Menu menu){

      // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);

      return true;}

      @Override public void onClick(View v){

      // TODO 自動(dòng)生成的方法存根

      switch(v.getId()){

      case R.id.bt_send:

      String number = et_number.getText().toString().trim();

      String content = et_content.getText().toString().trim();

      if(TextUtils.isEmpty(number)||TextUtils.isEmpty(content)){

      Toast.makeText(this, “號(hào)碼或者內(nèi)容不能為空”,Toast.LENGTH_SHORT).show();

      return;

      }else{

      SmsManager smsManager = SmsManager.getDefault();

      ArrayList contents = smsManager.divideMessage(content);

      for(String str:contents){

      smsManager.sendTextMessage(number, null, str, null, null);

      }

      }

      } } }

      17、相對(duì)布局&單位介紹

      ->布局說(shuō)明:

      ->同級(jí)控件:

      android:layout_toRightOf=“" android:layout_toLeftOf=”“ android:layout_below=”' android:layout_above=“" android:layout_maginBottom=”“

      ->相對(duì)父控件:

      android:ayout_centerInParent=”“ android: layout_centerHorizontal=”“ android:layout_centerVertical=”“ android:layout_alignParentBottom=”“ android:layout_alignParentRight=”“->對(duì)齊方式:

      ->文本顏色:#00000000~#ff000000(argb)文字的透明度->單位介紹:

      dp也就是dip:device independent pixels(設(shè)備獨(dú)立像素),是一種與密度無(wú)關(guān)的像素單位,在每英寸160點(diǎn)的屏幕上,1dp = 1px。不同設(shè)備有不同的顯示效果,這個(gè)和設(shè)備硬件有關(guān),一般我們?yōu)榱酥С諻VGA、HVGA和QVGA 推薦使用這個(gè),不依賴(lài)像素

      1.

      下載黑馬程序員:三大框架11天筆記全之Struts2-day01筆記(合集5篇)word格式文檔
      下載黑馬程序員:三大框架11天筆記全之Struts2-day01筆記(合集5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        黑馬程序員_PHP_課程同步筆記day35:PDO介紹

        PDO介紹 pdo是什么? PDO: PHP 的 Data Object(php的數(shù)據(jù)對(duì)象) pdo到底是什么? 它相當(dāng)于“別人”寫(xiě)的mysqldb工具類(lèi)! 比如: $pdo = new pdo; //這就是$pdo的一個(gè)對(duì)象! 但pdo比我們......

        黑馬程序員_PHP_課程同步筆記day41:驗(yàn)證碼模塊講解

        【黑馬程序員濟(jì)南】PHP模塊講解之驗(yàn)證碼部分 在日益龐大的網(wǎng)民的面前,如何能夠合理的規(guī)避以防止服務(wù)器被惡意DoS攻擊或者不法之徒利用機(jī)器程序自動(dòng)貼牛皮癬廣告?一條小小的驗(yàn)......

        黑馬程序員_PHP_課程同步筆記day10:JS小游戲

        【黑馬程序員】PHP課程同步筆記day10:JS小游戲 通過(guò)前幾周的學(xué)習(xí)我們對(duì)JS有一定的了解,今天的內(nèi)容就是將之前的學(xué)習(xí)的內(nèi)容在小游戲中應(yīng)用,希望大家能夠在小游戲中進(jìn)一步提升自......

        黑馬程序員java培訓(xùn)就業(yè)班筆記:day05總結(jié)

        Day05 上午: 1、數(shù)組的靜態(tài)初始化 多種定義格式: Int arr=new int//標(biāo)準(zhǔn)格式,可以明確數(shù)組的數(shù)據(jù)類(lèi)型,和數(shù)組名,但是不知道數(shù)組的長(zhǎng)度 Int arr=new int Int arr=new in......

        黑馬程序員java培訓(xùn)就業(yè)班筆記:day10總結(jié)

        Day10總結(jié): 1、多態(tài)的特點(diǎn): 1、成員變量: 當(dāng)在子父類(lèi)中出現(xiàn)了相同的非私有成員變量時(shí),在多態(tài)調(diào)用中的特點(diǎn): 在編譯時(shí):參考引用型變量所屬類(lèi)中是否有調(diào)用的成員變量,如果有編譯通過(guò),......

        黑馬程序員java培訓(xùn)就業(yè)班筆記:day06總結(jié)

        Day06總結(jié): 上午 1、二維數(shù)組 格式: Int arr=new int; 代表1維數(shù)組的個(gè)數(shù); 代表1維數(shù)組有三個(gè)元素; 內(nèi)存圖: 分析: 通過(guò)對(duì)內(nèi)存圖分布可知,首先在棧內(nèi)存中加載main......

        黑馬程序員_PHP_課程同步筆記day05:CSS介紹(二)

        【黑馬程序員】PHP課程同步筆記day05:CSS介紹(二) CSS內(nèi)邊距屬性:padding填充 ?Padding:一個(gè)數(shù)字,指的是四個(gè)方向是一樣的(上右下左) Padding的四個(gè)屬性: ? Padding-top(上內(nèi)邊距),p......

        黑馬程序員_PHP_課程同步筆記day36:PDO介紹(二)

        【黑馬程序員濟(jì)南】PDO介紹(二) 異常模式 使用一種特定的異常處理語(yǔ)法,則一發(fā)生錯(cuò)誤,就會(huì)自動(dòng)處理,不發(fā)生錯(cuò)誤,就正常執(zhí)行。 語(yǔ)法形式如下: try { //這里執(zhí)行pdo的一些操作,比......