<string name="msg">Hello, %1$s! You have %2$d messages.</string>
%[position]$[type]
Using in code:
String.format(getResource().getString(R.string.msg), name, count);
<string name="msg">Hello, %1$s! You have %2$d messages.</string>
%[position]$[type]
Using in code:
String.format(getResource().getString(R.string.msg), name, count);
int px = (int) getResources().getDimension(R.dimen.XXX)數字轉換
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, r.getDisplayMetrics())
KeyGenerator keygen = KeyGenerator.getInstance("DES");//參數代表使用的加解密演算法
SecretKey key = keygen.generateKey(); //產生key
在產生完Key後,利用Cipher來對資料加密。String str ="example";
byte[] src = str.getBytes();
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);//決定是何種模式有 ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE, UNWRAP_MODE
byte [] result = cipher.doFinal(src);//依據設定的Mode來開始動作,result即為加密後之密文
如果要解密的話,則改用DECRYPT_MODE
cipher.init(Cipher.ENCRYPT_MODE, key); byte [] src = cipher.doFinal(result);//取回明文,在轉換回對應之type即可 String str = new String(src);因為對稱加密,加解密都是用同一把Key所以會需要保存Key,最簡單的方法就是使用檔案來存放,例如
//存成檔案 byte [] bytekey = key.getEncoded(); int len = bytekey.length; FileOutputStream fos; fos = new FileOutputStream(FILEPATH) fos.write(bytekey); fos.close(); //讀檔 byte [] buf = new byte[len] FileInputStream fis = new FileInputStream(FILEPATH); int i = fis.read(buf); fis.close(); SecretKey resultKey = new SecretKeySpec(buf, "DES");//從byte array轉回key當然也可用ObjectInputStream、ObjectOutputStream拉,如此一來就可以少去byte轉換的動作。
LocalBroadcastManager mLocalBroadcastManager;
public void onCreate(Bundle savedInstanceState) {
mLocalBroadcastManager = LocalBroadcastManager.getInstance(getApplicationContext()); //要先getInstance
}
protected void onPause() {
mLocalBroadcastManager.unregisterReceiver(TTLNotifyReceiver);
}
protected void onResume() {
IntentFilter filter = new IntentFilter("com.test.hello");
mLocalBroadcastManager.registerReceiver(receiver, filter);
}
private BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
//rece the Intent
}
};
The short version: Use import if you intend to override a target, otherwise use include.意思就是說如果被導入的target需要被 override的話就用import,不然用include即可。
When using import the imported targets are available by up to two names. Their "normal" name without any prefix and potentially with a prefixed name (the value of the as attribute or the imported project's name attribute, if any).
When using include the included targets are only available in the prefixed form.
When using import, the imported target's depends attribute remains unchanged, i.e. it uses "normal" names and allows you to override targets in the dependency list.
When using include, the included targets cannot be overridden and their depends attributes are rewritten so that prefixed names are used. This allows writers of the included file to control which target is invoked as part of the dependencies.
It is possible to include the same file more than once by using different prefixes, it is not possible to import the same file more than once.
結論: 如果沒有要改動到導入的XML東西用include即可,反之則用import<project> <target name="setUp"> <property name="prop" value="in nested.xml"/> </target> <target name="echo" depends="setUp"> <echo>prop has the value ${prop}</echo> </target> </project>如果用import結果會是<project default="test"> <target name="setUp"> <property name="prop" value="in importing"/> </target> <import file="nested.xml" as="nested"/> <target name="test" depends="nested.echo"/> </project>setUp: nested.echo: [echo] prop has the value in importing test:如果用include結果會變成<project default="test"> <target name="setUp"> <property name="prop" value="in importing"/> </target> <include file="nested.xml" as="nested"/> <target name="test" depends="nested.echo"/> </project>nested.setUp: nested.echo: [echo] prop has the value in nested.xml test:
try { while(true) { synchronized (this) { wait(); } } } catch (InterruptedException e) { //interrupt triger }
京都的紅葉大部分都是以寺廟為中心,來記錄一下這次跑的寺廟,第一間是 瑠璃光院,這沒甚麼好說的,就是熱門景點,由於剛好是不用預約的日期,所以最好要提早去排隊,交通也不是很方便會有巴士爆滿的情況,而且門票也不便宜,不過拍出來的照片層次豐富,要不要去被騙一次就看人抉擇了。 ...