2016-12-19 4 views
0

Ich habe mehr als eine textview und ich möchte textview dynamisch mit Butter knife Bibliothek hinzufügen. Ich habe dieses Ding von meiner Seite aus in meinem Code gemacht, aber ich möchte einen anderen guten Weg kennen, um dasselbe zu tun.Wie man Text auf mehrere textview mit ButterKnife-Bibliothek setzen

public class MainActivity extends AppCompatActivity { 

    @BindViews({ R.id.tv1, R.id.tv2}) 
    List<TextView> listTextView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // must define this otherwise null pointer error show. 
     ButterKnife.bind(MainActivity.this); 

     listTextView.get(0).setText("First TextView "); 
     listTextView.get(1).setText("Second TextView "); 
    } 
} 
+0

Wenn es mehr als 2 Textviews geben kann, dann können Sie für 'for loop' gehen –

Antwort

1

können Sie speichern den Textinhalt in einem anderen Array textTitles sagen und dann verwenden Buttermesser des Action Schnittstelle den Text jeder der Textansicht

static final ButterKnife.Action<TextView> SET_TEXT = new ButterKnife.Action<TextView>() { 
    @Override 
    public void apply(TextView view, int index) { 
     view.setText(textTitles[index]); 
    } 
}; 

und rufen Sie dann setzen schließlich

ButterKnife.apply(listTextView, SET_TEXT); 
1

Versuchen Sie diese.

@BindViews({R.id.tv1, R.id.tv2, ...}) 
    List<TextView> listTextView; 

    String names[] = {"aaa", "bbb", "ccc" ...}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ButterKnife.bind(MainActivity.this); 

     for (int i = 0; i < listTextView.size(); i++) { 
      listTextView.get(i).setText(names[i]); 
     }   
    } 
Verwandte Themen