2016-07-28 13 views
0

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" 
+0

zeigt Ihre Textansicht doppelte Anführungszeichen am Anfang und am Ende des Textes? –

+0

Führt 'Log.d (" NEWSMODULE ", Überschrift);' das richtige Ergebnis? – shhp

+0

keine Anführungszeichen am Ende .. und Log.d ("NEWSMODULE", Überschrift) druckt korrekt –

Antwort

0

Die Schwerkraft für die Textview nicht korrekt war. Nachdem ich android:gravity="left" innen als eine der Attribute einsetzte, arbeitete das Festzelt wie ein Charme.