Ich versuche eine magische Spiegel-Anwendung zu erstellen, die die Überschriften zeigt. Ich habe die Schlagzeilen per RSS erfolgreich geknackt und habe 3 der Top-Schlagzeilen in die Saite gequetscht. Wenn ich den Text zum Auswahlfeld hinzufüge, wird nur die letzte Überschrift angezeigt.Android TextView Marqee
Überschrift String Beispiel:
US election: Trump 'encourages Russia to hack Clinton emails' | France church attack: Killers 'pledged allegiance to IS' in video | UN condemns 'barbaric' Boko Haram violence in Nigeria
Teil des Layouts
<TextView
android:id="@+id/news_headline"
style="@style/MirrorListText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:visibility="gone"
android:textSize="@dimen/mirror_cur_event_text_size"
tools:text=""
tools:visiblity="visible" />
Funktion, die die Textview EDIT die gesamte Funktion
private NewsModule.NewsListener mNewsListener = new NewsModule.NewsListener() {
@Override
public void onNewNews(String headline) {
if (TextUtils.isEmpty(headline)) {
mNewsHeadline.setVisibility(View.INVISIBLE);
} else {
mNewsHeadline.setVisibility(View.VISIBLE);
Log.d("NEWSMODULE", headline);
mNewsHeadline.setText(headline);
mNewsHeadline.setSelected(true);
}
}
};
EDIT hinzugefügt setzt: Added Klasse, die zieht die RSS
public class NewsModule {
public interface NewsListener {
void onNewNews(String headline);
}
public static void getNewsHeadline(final NewsListener newsListener) {
new AsyncTask<Void, Void, String>() {
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
newsListener.onNewNews(s);
}
@Override
protected String doInBackground(Void... params) {
RSSReader rssReader = new RSSReader();
String url = "http://feeds.bbci.co.uk/news/world/rss.xml?edition=us";
try {
RSSFeed feed = rssReader.load(url);
Log.d("NEWSMODULE", "successful load");
String headlines = feed.getItems().get(0).getTitle();// + feed.getItems().get(1).getTitle() + feed.getItems().get(2).getTitle();
Log.d("NEWSMODULE",headlines);
return headlines;
} catch (RSSReaderException e) {
Log.d("NEWSMODULE", "Error parsing RSS");
return null;
} catch (Exception e) {
// not great to catch general exceptions, but this lib is being sketchy
Log.d("NEWSMODULE", "Error parsing RSS");
return null;
}
}
}.execute();
}
}
Ich weiß, dass ich erfolgreich die vollständige Zeichenfolge an die Funktion bin vorbei, aber die einzige Schlagzeile erscheint und bewegt sich um ist
"UN condemns 'barbaric' Boko Haram violence in Nigeria"
zeigt Ihre Textansicht doppelte Anführungszeichen am Anfang und am Ende des Textes? –
Führt 'Log.d (" NEWSMODULE ", Überschrift);' das richtige Ergebnis? – shhp
keine Anführungszeichen am Ende .. und Log.d ("NEWSMODULE", Überschrift) druckt korrekt –