2016-07-28 52 views
0

我想創建一個顯示標題的魔鏡應用程序。我成功地通過RSS獲得了頭條新聞,並且我將3條頂級標題混合在一起。當我將文字添加到選取框時,它只顯示最後一個標題。Android TextView Marqee

標題字符串樣品:

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 

部分佈局的

 <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" /> 

功能,用於設置的TextView EDIT加入全功能

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); 
      } 
     } 
    }; 

編輯:添加的類,拉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(); 
    } 
} 

我知道我成功通過滿弦的功能,但唯一的標題出現,並四處移動是

"UN condemns 'barbaric' Boko Haram violence in Nigeria" 
+0

你的textview在文本的開始和結尾處顯示雙引號? –

+0

'Log.d(「NEWSMODULE」,標題);'輸出正確的結果? – shhp

+0

最後沒有引號..和Log.d(「NEWSMODULE」,標題)確實打印出 –

回答

0

爲TextView的重力是不正確的。在我把android:gravity="left" 作爲其中一個屬性之後,這個選取框就像一個魅力。