編輯:關於Android編程
一、實現效果:
最近在項目中需要做類似於上圖顯示的效果,裡面的數字和稱謂是動態獲取的,對於這種顯示效果,有如下兩種解決方案來處理:
(1)通過代碼動態設置TextView的內容,比如:
/** * 顯示今日狀態 * * */ private void showTodayState( int totalUser, float upRate, String hornor, char level ){ StringBuilder todayStateStr = new StringBuilder( ); todayStateStr.append( 您正與 ); todayStateStr.append( totalUser ); todayStateStr.append( 位朋友在一起游戲,本周排名提升了 ); todayStateStr.append( upRate ); todayStateStr.append( ,獲得 ); todayStateStr.append( hornor ); todayStateStr.append( 的稱號,等級為 ); todayStateStr.append( level ); todayStateStr.append( ! ); mTodayStateTxt.setText( todayStateStr ); }然後調用該方法:
showTodayState( 1234567, 68.376f, 爆頭大師, 'B' );
在代碼中做如下定義:您正與%1$d位朋友在一起游戲,本周排名提升了%2$.3f,獲得%3$s的稱號,等級為%4$c!
/** * 顯示今日狀態 * * */ private void showTodayState( int totalUser, float upRate, String hornor, char level ){ String todayStateStr = String.format( getResources( ).getString( R.string.today_state_string), totalUser, upRate, hornor, level ); mTodayStateTxt.setText( todayStateStr ); }本文介紹第二種處理方式,因為顯然第二種處理方式更方便,特別是需要動態改變多個顯示狀態的時候。
二、字符串資源格式化詳細介紹:
從上面這行字符串的定義可以看出,格式化字符串資源的格式為:您正與%1$d位朋友在一起游戲,本周排名提升了%2$.3f,獲得%3$s的稱號,等級為%4$c!
%+參數位置+$+格式化類型,其中:
參 數 位 置:從1開始依次編號,String.forma方法的第二個參數為格式化的第一個參數,後面依次遞增;
格式化類型:
s 字符串
f 浮點數
d 整型數
c 字符類型
其實懂點C語言的朋友一看就知道和printf的打印輸出格式化差不多。
三、注意事項:
1、在string.xml文件中定義好格式化的字符串資源,通過代碼動態設置字符串內容時,必須確保String.format方法裡面的參數不少於字符串資源中定義的格式化參數個數(實踐證明多了參數是不會報異常的),比如在上面的例子中字符串有四個格式化參數,如果代碼寫成這樣:
showTodayState( int totalUser, float upRate, String hornor )//少了level參數則會報如下異常:
推薦閱讀:淺析Android手機衛士自定義控件的屬性淺析Android手機衛士關閉自動更新詳解Android 手機衛士設置向導頁面一般的手機沒有root權限,進不去dat
本篇教程中使用到的Android Studio版本為1.0, Eclipse ADT版本23.0.4。請嘗試更新到該版本。Android Studio默認使用 Gradl
摘要:Json數據在安卓開發過程中是非常常見的,在請求服務器端數據的時候,服務器端返回的無非就是三種類型:HTML,XML,JSON。所以學習JSON對安卓程序員來說是非
在實際項目開發中,會出現很多的異常直接導致程序crash掉,在開發中我們可以通過logcat查看錯誤日志,Debug出現的異常,讓程序安全的運行,但是在開發