我有多个textview
,我想使用textview
库动态地向Butter knife
添加文字。我已经在我的代码中从我这边做了这件事,但我想知道做同样事情的任何其他好方法。
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)
试试这个。
@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]);
}
}
答案 1 :(得分:1)
您可以将文本内容存储在另一个数组中,然后说$('form').submit(function() {
var formData = $(this).serialize(); // can always use formdata.EMAIL = newValue; to update it
....
$.ajax({
....
data: formData,
使用Butterknife的textTitles
界面来设置每个文本视图的文本
Action
然后最后致电
static final ButterKnife.Action<TextView> SET_TEXT = new ButterKnife.Action<TextView>() {
@Override
public void apply(TextView view, int index) {
view.setText(textTitles[index]);
}
};
答案 2 :(得分:0)
Android Studio现在支持开箱即用的数据绑定。这是一个mvvm模式和Butterknife的官方替代品,您可能想要使用它:https://developer.android.com/topic/libraries/data-binding/index.html