編輯:關於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手機衛士保存密碼時進行md5加密
推薦閱讀:淺析Android手機衛士自定義控件的屬性淺析Android手機衛士關閉自動更新詳解Android 手機衛士設置向導頁面一般的手機沒有root權限,進不去dat
Android Studio導入項目的幾種方法
本篇教程中使用到的Android Studio版本為1.0, Eclipse ADT版本23.0.4。請嘗試更新到該版本。Android Studio默認使用 Gradl
Android技能-創建Json文本及Json解析
摘要:Json數據在安卓開發過程中是非常常見的,在請求服務器端數據的時候,服務器端返回的無非就是三種類型:HTML,XML,JSON。所以學習JSON對安卓程序員來說是非
Android程序crash處理
在實際項目開發中,會出現很多的異常直接導致程序crash掉,在開發中我們可以通過logcat查看錯誤日志,Debug出現的異常,讓程序安全的運行,但是在開發