作者lihohsin (新)
看板AndroidDev
標題[問題] 字串填入問題
時間Thu Mar 23 15:15:04 2017
請問大家這段程式碼
String strSug = getString(R.string.result);
if (msSex.equals(getString(R.string.sex_male)))
if (iAge < 28)
strSug += getString(R.string.sug_not_hurry);
else if (iAge > 33)
strSug += getString(R.string.sug_get_married);
else
strSug += getString(R.string.sug_find_couple);
else
if (iAge < 25)
strSug += getString(R.string.sug_not_hurry);
else if (iAge > 30)
strSug += getString(R.string.sug_get_married);
else
strSug += getString(R.string.sug_find_couple);
mTxtR.setText(strSug);
其中strSug += getString(R.string.sug_not_hurry);
這個+=在java中不是等於 strSug=strSug+getString(R.string.sug_not_hurry);
這樣子在Android 怎麼會是在StrSug中填入R.string.....中的資料呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.249.178
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1490253315.A.ECD.html
1F:→ pttworld: literal資源管理,簡單說寫死。 03/23 15:21
2F:→ lihohsin: 就是在Android固定是這樣寫 對嗎 03/23 15:46
3F:→ ssccg: 看不懂你問題在哪裡... 03/23 15:59
4F:→ ssccg: getString就是取resource id對應的string 03/23 15:59
5F:→ ssccg: 假設 getString(R.string.sug_not_hurry) 取到的是 abc 03/23 16:26
6F:→ ssccg: 那就相當於 strSug = strSug + "abc"; 03/23 16:26
這段code他的作用是把textview顯示文字 if條件
滿足if條件顯示出不同的R.id對應的String
但是 strSug=strSug+"String"
為什麼不直接 StrSug=getString(R.string.sug_not_hurry)
這樣就好
※ 編輯: lihohsin (36.230.249.178), 03/23/2017 16:51:49
7F:→ ssccg: 因為最上面有個 03/23 17:30
8F:→ ssccg: strSug = getString(R.string.result) 03/23 17:30
9F:→ ssccg: 最後結果是result對應的string加上後面符合條件的string 03/23 17:31
10F:推 LPH66: 這段作用是把三個字串接起來, 你不 += 前面的字串就不見了 03/23 17:55
11F:→ LPH66: 啊, 不是三個字串, 是第一行和下面六種其一加起來 03/23 17:55
12F:→ LPH66: 例如說 result 是 "結果:" not_hurry 是 "還不急" 03/23 17:56
13F:→ LPH66: 第一行把 "結果:" 指定進去, 下面用 += 把 "還不急" 接上 03/23 17:57
14F:→ LPH66: 最後出來才會是 "結果:還不急" 03/23 17:57
15F:→ LPH66: 不用 += 直接 = 的話 "結果:" 就會不見了 03/23 17:57
16F:→ LPH66: 如果還是搞不太懂的話, 就實際改下去然後看看結果就知道了 03/23 17:58