Я знаю, что это сообщение пришло из 2010 года, но я только что искал его, может, кому-то еще это тоже понадобится.Итак, вот функция, которую я создал для своих нужд.
В принципе, она заменит все ключевые слова значением из json (или модели, или любого источника данных)
как использовать:
JsonObject jsonROw = some_json_object;
String words = "this is an example. please replace these keywords [id], [name], [address] from database";
String newWords = preg_match_all_in_bracket(words, jsonRow);
Я использую эти коды в своем общем адаптере.
public static String preg_match_all_in_bracket(String logos, JSONObject row) {
String startString="\\[", endString="\\]";
return preg_match_all_in_bracket(logos, row, startString, endString);
}
public static String preg_match_all_in_bracket(String logos, JSONObject row, String startString, String endString) {
String newLogos = logos, withBracket, noBracket, newValue="";
try {
Pattern p = Pattern.compile(startString + "(\\w*)" + endString);
Matcher m = p.matcher(logos);
while(m.find()) {
if(m.groupCount() == 1) {
noBracket = m.group(1);
if(row.has(noBracket)) {
newValue = ifEmptyOrNullDefault(row.getString(noBracket), "");
}
if(isEmptyOrNull(newValue)) {
//no need to replace
} else {
withBracket = startString + noBracket + endString;
newLogos = newLogos.replaceAll(withBracket, newValue);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return newLogos;
}
Я также новичок в Java / Android, пожалуйста, не стесняйтесь исправлять, если вы считаете, что это плохая реализация или что-то в этом роде.,ТКС