2017-06-12 11 views
0

私はRecyclerViewを使用してTextView内に表示したい整数のリストを持っています。問題は最後の要素によって整数がオーバーライドされるたびに発生します。このメソッドをViewHolderのbindメソッド内で呼び出しています。 appendではなくsetTextを使用して、各整数をtextviewに書き込むことはできますか?ArrayListは最後の要素のみを表示しています

public void showRankings(){ 
     Integer[] rankingsArray = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; 
     List<Integer> rankings = Arrays.asList(rankingsArray); 


     for (Integer i : rankings){ 
      rankingsTxt.setText("#" + Integer.toString(i)); 
     } 
    } 

全ViewHolder:ここ

public class TvHolder extends ButterKnifeVH { 
    @Bind(R.id.trade_btn) AutoResizeTextView tradeBtn; 
    @Bind(R.id.gain_lose) public AutoResizeTextView gainTxt; 
    @Bind(R.id.symbolName) public AutoResizeTextView symbolName; 
    @Bind(R.id.parent) ConstraintLayout constraintLayout; 
    @Bind(R.id.ranking) AutoResizeTextView rankingsTxt; 

    @BindString(R.string.percent_string) String strPercent; 

    private FragmentActivity fragmentActivity; 
    private TopsFlopsView topsFlopsView; 
    private TopsFlopsSymbolEntity topsEntity; 


    public TvHolder(ViewGroup parent, int layoutId 
     ,FragmentActivity fragmentActivity,TopsFlopsView topsFlopsView) { 
    super(parent, layoutId); 
    this.topsFlopsView = topsFlopsView; 
    this.fragmentActivity = fragmentActivity; 
    } 
    public void bind(TopsFlopsSymbolEntity topsEntity){ 
    symbolName.setText(topsEntity.getSymbol()); 
    showRankings(); 
    } 


     public void showRankings(){ 
      Integer[] rankingsArray = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; 
      List<Integer> rankings = Arrays.asList(rankingsArray); 


      for (Integer i : rankings){ 
       rankingsTxt.setText("#" + Integer.toString(i)); 
      } 
     } 

    } 


} 

が細かい

public class TopsAdapter 
    extends RealmRecyclerViewAdapter<TopsFlopsSymbolEntity, RecyclerView.ViewHolder> { 

    private FragmentActivity context; 
    private TopsFlopsView view; 

    public TopsAdapter(Realm realm) { 
    super(realm); 
    } 

    @Override 
    public void onBindRealmViewHolder(RecyclerView.ViewHolder holder, TopsFlopsSymbolEntity tops) { 
    if(holder instanceof TopsViewHolder){{ 
     ((TopsViewHolder) holder).bind(tops); 
    }} 
    } 

    @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    return new TopsViewHolder(parent, R.layout.tops_flops_item, context, view); 
    } 
+2

は私たちにあなたがこのコードは、常にランキングの最後の値に 'rankingsTxt'の' text'フィールドを設定します –

+0

アダプタを書いたかのような完全なコードを提供します。あなたのコード全体を提供してください –

+0

'rankingsTxt.setText(rankingsTxt.getText()+"# "+ Integer.toString(i));' –

答えて

0

を働いているアダプタの一部は、次のスニペットを試してみて、メインである - あなたが作成する必要が

... 
... 
String textToDisplay = ""; 
for (Integer i : rankings){ 
    textToDisplay = textToDisplay + " #" + Integer.toString(i); 
} 

rankingsTxt.setText(textToDisplay); 
... 
+0

#1#2が表示されていてもまだ動作していません – Xample

0

あなたが欲しい弦ビューに飛び越すか、rankingsTxtから前の値を取得し、新しい値にrankingsTxt.getTest()+ new valueのような前の値を追加して、再度設定します。

0

これはあなたを助けるかもしれません。

public void showRankings() { 
    Integer[] rankingsArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}; 
    List<Integer> rankings = Arrays.asList(rankingsArray); 

    String str = ""; 
    for (Integer i : rankings) { 
     str = str + "#" + Integer.toString(i); 
    } 
    rankingsTxt.setText(str); 
} 
+0

まだ動作していない#1#2#3がまだ表示されていません – Xample

+0

アクティビティとリサイクルビューのJavaコードとxmlコードで質問を編集してください –

+0

@ \ n " –

関連する問題