我有一个测试,我在Spinner上测试一个OnItemSelectedListener。当测试>的项目时它很有用。但似乎我无法测试第一项。
我当前的实现,如果我选择索引为>的项目,则有效0看起来像这样。
final Addpointer addPointer = getActivity();
addPointer.runOnUiThread(new Runnable() {
@Override
public void run() {
EditText address = (EditText) addPointer.findViewById(R.id.address);
address.setText("a");
Spinner spinner = (Spinner) addPointer.findViewById(R.id.intOrHex);
spinner.setSelection(0);
View view = (View) spinner.getChildAt(0);
long id = spinner.getAdapter().getItemId(0);
spinner.performItemClick(view, 0, id);
}
});
我需要做些什么才能让测试“选择”第一项?
提前致谢
罗兰
答案: 1)关于设置“动画”的Rahul garg是解决问题的关键。 2)但是你不能触发onSelectionChanged,除非选择实际改变了(0是初始状态所以我需要在将其设置回零之前将其设置为1。
答案 0 :(得分:7)
使用
spinner.setSelection(0,true);
第二个参数实际上将选择动画为0索引。
答案 1 :(得分:6)
更多"透明"方式:强>
task assembleForTest(type: Sync) {
fileMode = 0775
from ("scripts") {
include "**/*.cgi"
filter(org.apache.tools.ant.filters.ReplaceTokens,
tokens: [programName: programName,
version: version,
dbServer: dbServerTest,
deployDir: deployDirTest])
}
from files("scripts/" + programName + ".cgi")
from files("build/libs/" + programName + "-" + version + ".jar")
into ("build/" + programName)
}
*第二个参数用于选择动画
**这应该在以下之后调用:
Spinner.setSelection(Adapter.NO_SELECTION, false);**
或任何涉及 Spinner.setSelection()的方法,例如:
Spinner.setAdapter(...);
&安培; for OnItemSelectedListener()不要激活
答案 2 :(得分:0)
查看开发者指南中的SpinnerTest示例应用程序。它实际上是向活动发送击键。