我写了一个基于robotium的方法,用途是根据控件的key进行单击事件,代码如下:
public boolean clickByKey(String key) {
if(mSolo.getCurrentActivity() instanceof PreferenceActivity) {
PreferenceActivity act = (PreferenceActivity)mSolo.getCurrentActivity();
final ListAdapter adapter = act.getPreferenceScreen().getRootAdapter();
for (int idx = 0; idx < adapter.getCount(); idx++) {
Object o = adapter.getItem(idx);
if (o instanceof Preference) {
final Preference pref = (Preference) o;
if (pref.getKey().equals(key)) {
act.getPreferenceScreen().onItemClick(act.getListView(),
null, idx, adapter.getItemId(idx));
return true;
}
}
}
}
return false;
}
运行时在运行时在act.getPreferenceScreen().getRootAdapter处出错,显示act.getPreferenceScreen为空值,mSolo是Solo类的一个对象,已经验证mSolo.getCurrentActivity()能够获取到正确的Activity,求大神们帮忙分析,为什么会出现空值?如何能才能正确获取到需要的ListAdapter?
public boolean clickByKey(String key) {
if(mSolo.getCurrentActivity() instanceof PreferenceActivity) {
PreferenceActivity act = (PreferenceActivity)mSolo.getCurrentActivity();
final ListAdapter adapter = act.getPreferenceScreen().getRootAdapter();
for (int idx = 0; idx < adapter.getCount(); idx++) {
Object o = adapter.getItem(idx);
if (o instanceof Preference) {
final Preference pref = (Preference) o;
if (pref.getKey().equals(key)) {
act.getPreferenceScreen().onItemClick(act.getListView(),
null, idx, adapter.getItemId(idx));
return true;
}
}
}
}
return false;
}
运行时在运行时在act.getPreferenceScreen().getRootAdapter处出错,显示act.getPreferenceScreen为空值,mSolo是Solo类的一个对象,已经验证mSolo.getCurrentActivity()能够获取到正确的Activity,求大神们帮忙分析,为什么会出现空值?如何能才能正确获取到需要的ListAdapter?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货