2015-04-26 13 views
5

Sto utilizzando Android sdk di Twitter per lo sviluppo di un'app. Nel dato sdk vi è un CompactTweetView per la visualizzazione dei tweet, ma non vi è alcun campo per mostrare i conteggi di retweet in esso. Per visualizzare i tweet che sto usando TweetViewAdapter fornito in sdk.Mostra retweet conteggi utilizzando Twitter Fabric Android Tweet TweetViewAdpater

Ora voglio mostrare i conteggi di retweet anche sotto ogni tweet. Come posso raggiungere il mio obiettivo? Devo aggiungere righe separate dopo ogni voce in ListView per mostrare i conteggi di retweet o c'è un altro modo con cui posso estendere il CompactTweetView per includere il conteggio dei retweet. Un altro modo è che utilizzo un LinearLayout vuoto e aggiungo una riga per la visualizzazione del conteggio dei ritiri dopo ogni CompactTweetView. Quale sarà la performance in entrambi i casi

  1. ListView (Se possibile, allora come si fa?)

  2. vuoto LinearLayout con CompactTweetView si alternano e Retweet il numero di visualizzazioni.

Se qualcosa non è chiaro si prega di chiedere per ulteriori informazioni. Grazie.

Stato corrente della mia app di Twitter utilizzando ListView con TweetViewAdapter. Voglio visualizzare il conteggio dei retweet dopo ogni riga. enter image description here

+0

Ho la risposta. Può essere fatto estendendo TweetViewAdapter e sovrascrivendo la funzione getView con gli elementi dell'interfaccia utente richiesti. Grazie. – sahu

+0

e per quanto riguarda gli eventi di clic di quei pulsanti? C'è tessuto api per retweet, preferito e rispondere, devo implementarlo anche? –

+0

No, è già presente in tessuto api. Usa statusesService per diverse opzioni come retweet, risposta preferita ecc. statusesService = twitterApiClient.getStatusesService(); – sahu

risposta

4

Ricerca sul iu tessuto SDK la tw__tweet_compact.xml o tw__tweet.xml layout.Copy di risorse layouts.Don't cambiare il nome. Aggiungi la tua Texview personalizzata per mostrare il conteggio dei retweet. Questa è mia abitudine tw__tweet_compact.xml

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/tw__tweet_view" 
style="@style/tw__CompactTweetContainer"> 

<TextView 
    android:id="@+id/tw__tweet_retweeted_by" 
    style="@style/tw__TweetRetweetedBy.Compact" 
    android:layout_alignLeft="@+id/tw__author_attribution" 
    tools:text="retweeted by" /> 

<ImageView 
    android:id="@+id/tw__tweet_author_avatar" 
    style="@style/tw__TweetAvatar.Compact" 
    android:layout_below="@id/tw__tweet_retweeted_by" 
    tools:background="@color/tw__tweet_media_preview_bg_color" 
    tools:ignore="ContentDescription" /> 

<!--Name and timestamp don't ellipsize, but @username in the middle does ellipsize--> 
<LinearLayout 
    android:id="@+id/tw__author_attribution" 
    style="@style/tw__CompactAttributionLine" 
    android:layout_below="@id/tw__tweet_retweeted_by" 
    android:layout_toEndOf="@id/tw__tweet_author_avatar" 
    android:layout_toRightOf="@id/tw__tweet_author_avatar"> 

    <TextView 
     android:id="@+id/tw__tweet_author_full_name" 
     style="@style/tw__TweetFullName.Compact" 
     tools:text="Jack" /> 

    <TextView 
     android:id="@+id/tw__tweet_author_screen_name" 
     style="@style/tw__TweetScreenName.Compact" 
     tools:text="@jack" /> 

    <TextView 
     android:id="@+id/tw__tweet_timestamp" 
     style="@style/tw__TweetTimestamp.Compact" 
     tools:text="• 03/21/2006" /> 

</LinearLayout> 

<ImageView 
    android:id="@+id/tw__twitter_logo" 
    style="@style/tw__TwitterLogo.Compact" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@id/tw__tweet_retweeted_by" 
    tools:ignore="ContentDescription" /> 

<com.twitter.sdk.android.tweetui.internal.util.AspectRatioImageView 
    android:id="@+id/tw__tweet_media" 
    style="@style/tw__TweetMedia.Compact" 
    android:layout_below="@id/tw__author_attribution" 
    android:layout_toEndOf="@id/tw__tweet_author_avatar" 
    android:layout_toRightOf="@id/tw__tweet_author_avatar" 
    tools:ignore="ContentDescription" /> 

<TextView 
    android:id="@+id/tw__tweet_text" 
    style="@style/tw__TweetText.Compact" 
    android:layout_below="@id/tw__tweet_media" 
    android:layout_toEndOf="@id/tw__tweet_author_avatar" 
    android:layout_toRightOf="@id/tw__tweet_author_avatar" 
    tools:text="just setting up my twttr" /> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/rtwfavLayout" 
    android:layout_width="match_parent" 
    android:layout_height="36dp" 
    android:layout_below="@+id/tw__tweet_text" 
    android:layout_toEndOf="@+id/tw__tweet_author_avatar" 
    android:layout_toRightOf="@+id/tw__tweet_author_avatar" 
    android:orientation="horizontal"> 

    <ImageView 
     android:layout_width="15dp" 
     android:layout_height="15dp" 
     android:layout_marginBottom="2dp" 
     android:layout_marginRight="2dp" 
     android:layout_marginTop="11dp" 
     android:scaleType="fitCenter" 
     android:src="@drawable/tw__ic_retweet_light" /> 

    <TextView 
     android:id="@+id/rtwtxt" 
     android:layout_width="80dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="2dp" 
     android:layout_marginTop="11dp" 
     android:singleLine="true" 


     /> 

    <ImageView 
     android:layout_width="15dp" 
     android:layout_height="15dp" 
     android:layout_marginBottom="2dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="2dp" 
     android:layout_marginTop="11dp" 
     android:scaleType="fitCenter" 
     android:src="@drawable/favourite" /> 

    <TextView 
     android:id="@+id/favtxt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="2dp" 
     android:layout_marginTop="11dp" 
     android:drawablePadding="5dp" 
     android:singleLine="true" /> 

</LinearLayout> 

</RelativeLayout> 

Dopo aver modificato la scheda di Tweet. Nel metodo getView aggiungi TextView e imposta il numero di retweet nel TextView. Il numero di preferiti non funziona bene. Mostra solo i tuoi tweet preferiti. I tweet preferiti degli altri utenti non vengono visualizzati.

public class TweetAdapter extends TweetTimelineListAdapter { 
    public TweetAdapter(Context context, Timeline<Tweet> timeline) { 
     super(context, timeline); 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     final View view = super.getView(position, convertView, parent); 
     CompactTweetView compactTweetView = (CompactTweetView) view; 

     TextView txtfav = (TextView) compactTweetView.findViewById(R.id.favtxt); 

    TextView txtrtw = (TextView) compactTweetView.findViewById(R.id.rtwtxt); 


    if (compactTweetView.getTweet().retweetedStatus != null) { 
     txtfav.setText(String.valueOf(compactTweetView.getTweet().retweetedStatus.favoriteCount)); 
     if (txtfav.getText().equals("null")) { 
      txtfav.setText(String.valueOf(compactTweetView.getTweet().favoriteCount)); 
     } 
     txtrtw.setText(String.valueOf(compactTweetView.getTweet().retweetedStatus.retweetedStatus)); 
     if (txtrtw.getText().equals("null")) { 
      txtrtw.setText(String.valueOf(compactTweetView.getTweet().retweetCount)); 
     } 
    } else { 
     txtfav.setText(String.valueOf(compactTweetView.getTweet().favoriteCount)); 
     txtrtw.setText(String.valueOf(compactTweetView.getTweet().retweetCount)); 
    } 

     return compactTweetView; 
    } 
} 

Penso che in questo modo sia più semplice. Cordiali saluti

+0

potete fornirmi per favore il codice completo –

Problemi correlati