Android 如何使用Robotium测试AutoCompleteTextView ItemClick事件
我有以下robotium测试用例示例Android 如何使用Robotium测试AutoCompleteTextView ItemClick事件,android,robotium,Android,Robotium,我有以下robotium测试用例示例 public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> { private static Class launcherActivityClass ; private Solo solo; public MyActivityTest() { super(launcherActivityClass); } public void
public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> {
private static Class launcherActivityClass ;
private Solo solo;
public MyActivityTest() {
super(launcherActivityClass);
}
public void setUp() throws Exception {
super.setUp();
solo=new Solo(getInstrumentation(),getActivity());
}
public void test() throws InterruptedException {
solo.enterText(0,"Hel");
solo.goBack();
solo.sendKey(solo.DOWN);
solo.enterText(0,"Hello, Android - Ed Burnette");
Thread.sleep(5000);
}
}
公共类MyActivityTest扩展了ActivityInstrumentationTestCase2{
私有静态类启动器ActivityClass;
私人独奏;
公共MyActivityTest(){
超级(活动类);
}
public void setUp()引发异常{
super.setUp();
solo=新的solo(getInstrumentation(),getActivity());
}
public void test()引发InterruptedException{
单独输入文本(0,“Hel”);
solo.goBack();
solo.sendKey(solo.DOWN);
enterText(0,“你好,Android-Ed Burnette”);
睡眠(5000);
}
}
这是被测对象的样本
public class MyActivity extends Activity {
AutoCompleteTextView acTextView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new AsyncTask(this,acTextView).execute("");
acTextView = (AutoCompleteTextView)findViewById(R.id.androidbooks);
acTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Log.i("Auto Test", adapterView.getAdapter().getItem(i).toString());
}
});
private class AsyncTask extends android.os.AsyncTask<String, String, String[]> {
public AsyncTask(Context ctxt, AutoCompleteTextView fdtv) {
}
@Override
protected String[] doInBackground(String... strings) {
return new String[0];
}
@Override
protected void onPostExecute(String[] strings) {
String[] androidBooks =
{
"Hello, Android - Ed Burnette",
"Professional Android 2 App Dev - Reto Meier",
"Unlocking Android - Frank Ableson",
"Android App Development - Blake Meike",
"Pro Android 2 - Dave MacLean",
"Beginning Android 2 - Mark Murphy",
"Android Programming Tutorials - Mark Murphy",
"Android Wireless App Development - Lauren Darcey",
"Pro Android Games - Vladimir Silva",
"Hello, Android - Ed Burnette",
"Professional Android 2 App Dev - Reto Meier",
"Unlocking Android - Frank Ableson",
"Android App Development - Blake Meike",
"Pro Android 2 - Dave MacLean",
"Beginning Android 2 - Mark Murphy",
"Android Programming Tutorials - Mark Murphy",
"Android Wireless App Development - Lauren Darcey",
"Pro Android Games - Vladimir Silva",
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MyActivity.this,android.R.layout.simple_dropdown_item_1line,androidBooks);
acTextView = (AutoCompleteTextView)findViewById(R.id.androidbooks);
acTextView.setThreshold(3);
acTextView.setAdapter(adapter);
}
}
}
公共类MyActivity扩展活动{
自动完成文本视图acTextView;
/**
*在首次创建活动时调用。
*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
新建异步任务(this,acTextView).execute(“”);
acTextView=(AutoCompleteTextView)findViewById(R.id.androidbooks);
acTextView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Log.i(“自动测试”,adapterView.getAdapter().getItem(i.toString());
}
});
私有类AsyncTask扩展了android.os.AsyncTask{
公共异步任务(上下文ctxt、自动完成TEXTVIEW fdtv){
}
@凌驾
受保护的字符串[]doInBackground(字符串…字符串){
返回新字符串[0];
}
@凌驾
受保护的void onPostExecute(字符串[]字符串){
字符串[]androidBooks=
{
“你好,安卓-Ed Burnette”,
“专业安卓2应用开发-Reto Meier”,
“解锁Android-弗兰克·艾布森”,
“Android应用程序开发-Blake Meike”,
“Pro Android 2-戴夫·麦克莱恩”,
“开始安卓2-马克·墨菲”,
“Android编程教程-马克·墨菲”,
“安卓无线应用开发-劳伦·达西”,
“亲安卓游戏-弗拉基米尔·席尔瓦”,
“你好,安卓-Ed Burnette”,
“专业安卓2应用开发-Reto Meier”,
“解锁Android-弗兰克·艾布森”,
“Android应用程序开发-Blake Meike”,
“Pro Android 2-戴夫·麦克莱恩”,
“开始安卓2-马克·墨菲”,
“Android编程教程-马克·墨菲”,
“安卓无线应用开发-劳伦·达西”,
“亲安卓游戏-弗拉基米尔·席尔瓦”,
};
ArrayAdapter=新的ArrayAdapter(MyActivity.this,android.R.layout.simple\u dropdown\u item\u 1line,androidBooks);
acTextView=(AutoCompleteTextView)findViewById(R.id.androidbooks);
acTextView.setThreshold(3);
setAdapter(适配器);
}
}
}
当我运行测试时,AutoCompleteTextView会显示列表,文本中会填充数据,但我无法捕获textview的onItemClick事件
在robotium我怎么做
谢谢
// Enter the first few characters of the book.
solo.enterText(0,"Hello, Andr");
// Wait for the book name to appear, then click on it.
solo.waitForText("Hello, Android - Ed Burnette");
solo.clickOnText("Hello, Android - Ed Burnette");