如何使用 ButterKnife 库将文本设置为多个文本视图
How to set text to multiple textview using ButterKnife library
我有多个 textview
,我想使用 Butter knife
库动态地向 textview
添加文本。我已经在我的代码中完成了这件事,但我想知道做同样事情的任何其他好方法。
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 ");
}
}
您可以将文本内容存储在另一个数组中,比如 textTitles
然后
使用 Butterknife 的 Action
界面设置每个文本视图的文本
static final ButterKnife.Action<TextView> SET_TEXT = new ButterKnife.Action<TextView>() {
@Override
public void apply(TextView view, int index) {
view.setText(textTitles[index]);
}
};
然后最后调用
ButterKnife.apply(listTextView, SET_TEXT);
试试这个。
@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]);
}
}
Android Studio 现在支持开箱即用的数据绑定。它是 Butterknife 的 mvvm 模式和官方替代品,您可能想改用它:https://developer.android.com/topic/libraries/data-binding/index.html
我有多个 textview
,我想使用 Butter knife
库动态地向 textview
添加文本。我已经在我的代码中完成了这件事,但我想知道做同样事情的任何其他好方法。
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 ");
}
}
您可以将文本内容存储在另一个数组中,比如 textTitles
然后
使用 Butterknife 的 Action
界面设置每个文本视图的文本
static final ButterKnife.Action<TextView> SET_TEXT = new ButterKnife.Action<TextView>() {
@Override
public void apply(TextView view, int index) {
view.setText(textTitles[index]);
}
};
然后最后调用
ButterKnife.apply(listTextView, SET_TEXT);
试试这个。
@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]);
}
}
Android Studio 现在支持开箱即用的数据绑定。它是 Butterknife 的 mvvm 模式和官方替代品,您可能想改用它:https://developer.android.com/topic/libraries/data-binding/index.html