- Forum-Beiträge: 31
14.01.2014, 15:18:50 via Website
14.01.2014 15:18:50 via Website
ich parse einen RSS Feed und erhalten dort unter anderem einen String, der manchmal Links zu YouTube Videos enthält. Ich kann diese URL bereits raus parsen. Ich will, dass alle YT Links durch den Text "Link zum Video" in der WebView ersetzt werden, der Link zum Video sollte durch einen Klick auf diesen Text aufgerufen werden.
Es wird mir zwar der Text" Link zum Video" angezeigt, der Link führt aber auch zu diesem String.
So sieht mein Code bisher aus:
[code]String description = fFeed.getItem(fPos).getDescription();
// get all links from the description string
ArrayList<String> links_in_string = retrieveLinks(description);
Log.d("debug", "All Links: " + links_in_string.toString());
// search for YouTube links
ArrayList<String> resList = new ArrayList<String>();
String searchString = "Kann als neues Mitglied keine YT Links angeben=";
for (String curVal : links_in_string) {
if (curVal.contains(searchString)) {
resList.add(curVal);
}
}
Log.d("debug", "YouTube Links: " + resList.toString());
// convert to single YouTube URL strings and replace
// them in the description string
Object[] mStringArray = resList.toArray();
for (int i = 0; i < mStringArray.length; i++) {
Log.d("string is", (String) mStringArray[i]);
description = description.replace((String) mStringArray[i],
"Link zum Video");
}
/**
* Retrieve all the links from the description string
* of the RSS Feed
*/
private ArrayList<String> retrieveLinks(String text) {
ArrayList<String> links = new ArrayList<String>();
String regex = "\\(?\\b(h[.])[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(text);
while (m.find()) {
String urlStr = m.group();
if (urlStr.startsWith("(") && urlStr.endsWith(")")) {
urlStr = urlStr.substring(1, urlStr.length() - 1);
}
links.add(urlStr);
}
return links;
}[/code]
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.