編輯:關於android開發
自己為什麼要學android
先養活自己,才能走好以後的路 開始接觸手機端android那時感覺,做android開發的工資高、android前景廣。可是自己在學校那時自學了,最後自己沒有堅持走下去。因為開始接觸新的東西,自己要付出很多努力和時間,主要是自己那時不懂的利用好網絡資源、遇到問題不知道怎麼去咨詢解決,碰了很多壁和走了彎路!自己就去學了C/C++、JavaWeb,也接觸過Python,大學生活自己過的一團遭,回想起來自己很`Loser`
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.intentcallphone" android:versionCode="1" android:versionName="1.0" > 3 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.CALL_PHONE" />" <!-- 代表當前應用 --> 4 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > 5 <activity android:name=".MainActivity" android:label="@string/app_name" > 6 <!-- main主入口 --> <!-- 意圖過濾器 --> 7 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> 8 </intent-filter> 9 </activity> 10 </application> 11 </manifest>
1 android:id="@+id/pay" 2 android:layout_width="fill_parent" 3 android:layout_height="wrap_content" 4 android:layout_margin="10dp" 5 android:onClick="pay" 6 android:text="支付" 7 tools:ignore="HardcodedText" /> 8 9 public void pay(View v) { 10 //要執行的操作 11 }
需要判斷sdcard剩余空間
1 //判斷sdcard存儲空間是否滿足文件的存儲 2 File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目錄作為一個文件對象 3 long usableSpace = sdcard_filedir.getUsableSpace();//獲取文件目錄對象剩余空間 4 long totalSpace = sdcard_filedir.getTotalSpace(); 5 //將一個long類型的文件大小格式化成用戶可以看懂的M,G字符串 6 String usableSpace_str = Formatter.formatFileSize(mContext, usableSpace); 7 tring totalSpace_str = Formatter.formatFileSize(mContext, totalSpace); 8 if(usableSpace < 1024 * 1024 * 200){//判斷剩余空間是否小於200M 9 Toast.makeText(mContext, "sdcard剩余空間不足,無法滿足下載;剩余空間為:"+usableSpace_str, Toast.LENGTH_SHORT).show(); 10 return ; 11 } 12 13 /data/data: context.getFileDir().getPath(); 14 是一個應用程序的私有目錄,只有當前應用程序有權限訪問讀寫,其他應用無權限訪問。一些安全性要求比較高的數據存放在該目錄,一般用來存放size比較小的數據。 15 /sdcard: Enviroment.getExternalStorageDirectory().getPath(); 16 是一個外部存儲目錄,只用應用聲明了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>的一個權限,就可以訪問讀寫sdcard目錄;所以一般用來存放一些安全性不高的數據,文件size比較大的數據。
1 1.寫布局 2 3 2.業務邏輯 4 a.備份 5 1.封裝短信數據到list中 6 2.將list中的數據寫到xml文件中。 7 b.恢復 8 1.解析xml文件中短信數據,封裝到list集合中 9 2.將解析數據打印。 10 11 XmlPullParser 12 13 //使用XmlSerializer來序列化xml文件 14 public static boolean backupSms_android(Context context){ 15 16 try{ 17 18 //[0]獲取短信數據 19 ArrayList<SmsBean> allSms = SmsDao.getAllSms(); 20 //[1]通過Xml獲取一個XmlSerializer對象 21 XmlSerializer xs = Xml.newSerializer(); 22 //[2]設置XmlSerializer的一些參數,比如:設置xml寫入到哪個文件中 23 //os:xml文件寫入流 encoding:流的編碼 24 xs.setOutput(context.openFileOutput("backupsms2.xml", Context.MODE_PRIVATE), "utf-8"); 25 //[3]序列化一個xml的聲明頭 26 //encoding:xml文件的編碼 standalone:是否獨立 27 xs.startDocument("utf-8", true); 28 //[4]序列化一個根節點的開始節點 29 //namespace:命名空間 name: 標簽的名稱 30 xs.startTag(null, "Smss"); 31 //[5]循環遍歷list集合序列化一條條短信 32 33 for (SmsBean smsBean : allSms) { 34 xs.startTag(null, "Sms"); 35 //name:屬性的名稱 value:屬性值 36 xs.attribute(null, "id", smsBean.id+""); 37 38 xs.startTag(null, "num"); 39 //寫一個標簽的內容 40 xs.text(smsBean.num); 41 xs.endTag(null, "num"); 42 43 xs.startTag(null, "msg"); 44 xs.text(smsBean.msg); 45 xs.endTag(null, "msg"); 46 47 xs.startTag(null, "date"); 48 xs.text(smsBean.date); 49 xs.endTag(null, "date"); 50 51 xs.endTag(null, "Sms"); 52 } 53 54 //[6]序列化一個根節點的結束節點 55 xs.endTag(null, "Smss"); 56 //[7]將xml寫入到文件中,完成xml的序列化 57 xs.endDocument(); 58 return true; 59 60 }catch (Exception e) { 61 e.printStackTrace(); 62 } 63 return false; 64 }
1 dom解析:基於全文加載的解析方式 sax解析:基於事件的逐行解析方式 pull解析:同sax 2 3 生成 XmlSerializer 模板代碼 4 解析 XmlPullParser 模板代碼 5 6 7 //解析xml文件讀取短信內容 8 public static int restoreSms(Context context) { 9 ArrayList<SmsBean> arrayList = null; 10 SmsBean smsBean = null; 11 try{ 12 //1.通過Xml獲取一個XmlPullParser對象 13 XmlPullParser xpp = Xml.newPullParser(); 14 //2.設置XmlPullParser對象的參數,需要解析的是哪個xml文件,設置一個文件讀取流 15 16 //通過context獲取一個資產管理者對象 17 AssetManager assets = context.getAssets(); 18 //通過資產管理者對象能獲取一個文件讀取流 19 InputStream inputStream = assets.open("backupsms.xml"); 20 xpp.setInput(inputStream,"utf-8"); 21 //xpp.setInput(context.openFileInput("backupsms2.xml"), "utf-8"); 22 //3.獲取當前xml行的事件類型 23 int type = xpp.getEventType(); 24 //4.判斷事件類型是否是文檔結束的事件類型 25 while(type != XmlPullParser.END_DOCUMENT){ 26 //5.如果不是,循環遍歷解析每一行的數據。解析一行後,獲取下一行的事件類型 27 28 String currentTagName = xpp.getName(); 29 //判斷當前行的事件類型是開始標簽還是結束標簽 30 switch (type) { 31 case XmlPullParser.START_TAG: 32 if(currentTagName.equals("Smss")){ 33 //如果當前標簽是Smss,需要初始化一個集合 34 arrayList = new ArrayList<SmsBean>(); 35 }else if(currentTagName.equals("Sms")){ 36 37 smsBean = new SmsBean(); 38 smsBean.id = Integer.valueOf(xpp.getAttributeValue(null, "id")); 39 40 }else if(currentTagName.equals("num")){ 41 smsBean.num = xpp.nextText(); 42 }else if(currentTagName.equals("msg")){ 43 smsBean.msg = xpp.nextText(); 44 }else if(currentTagName.equals("date")){ 45 smsBean.date = xpp.nextText(); 46 } 47 break; 48 case XmlPullParser.END_TAG: 49 //當前結束標簽是Sms的話,一條短信數據封裝完成, 可以加入list中 50 if(currentTagName.equals("Sms")){ 51 arrayList.add(smsBean); 52 } 53 break; 54 default: 55 break; 56 } 57 58 type = xpp.next();//獲取下一行的事件類型 59 } 60 61 return arrayList.size(); 62 63 }catch (Exception e) { 64 e.printStackTrace(); 65 } 66 return 0; 67 }
Android--自定義荷載進度的兩種方法,android--荷載博客撰寫人:It一zhai男 轉載請標明地址:http://www.cnblogs.com/i
Android下創建一個SQLite數據庫,androidsqlite數據庫:SQLite(輕量級,嵌入式的數據庫) 大量的相似結構的數據的儲存,快速的查詢。特殊的文件(
android:QQ多種側滑菜單的實現 然而這個菜單效果只是普通的側拉效果 我們還可以實現抽屜式側滑菜單 就像這樣 第一種效果 第二種效果 第三種效果 第四種效果 其
Android開發學習之路-動態高斯模糊怎麼做,android高斯什麼是高斯模糊? 高斯模糊(英語:Gaussian Blur),也叫高斯平滑,是在Adobe Phot