2016-12-19 14 views
0

textviewが複数あります。私は自分のコードで私の側からこのことをしたが、私は同じことをするための他の良い方法を知りたい。ButterKnifeライブラリを使用して複数のテキストビューにテキストを設定する方法

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

2つ以上のテキストビューがある場合は、 'for loop' –

答えて

1

あなたはtextTitlesを言う別の配列内のテキストコンテンツを格納することができ、その後 は最終的に呼び出し、テキストビュー、その後

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

とのそれぞれのテキストを設定するButterknifeのActionインターフェイスを使用し

ButterKnife.apply(listTextView, SET_TEXT); 
1

これを試してください。

@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]); 
     }   
    } 
関連する問題