【问题标题】:What is the private field name of actionbar context view ?操作栏上下文视图的私有字段名称是什么?
【发布时间】:2014-03-26 16:08:42
【问题描述】:

你好,,, 我正在使用 robotium 框架来测试 android 应用程序,并且我使用 Robotium-actionbarsherlock 扩展来执行上下文操作栏菜单项的点击...

这是我正在使用的函数,,,

public void clickOnActionModeOverflowMenuItem(String text) {
    Activity activity = solo.getCurrentActivity();
    Log.d("aaaa", activity.toString());
    if (!(activity instanceof SherlockFragmentActivity)) {
            throw new IllegalStateException("This method should be called only in SherlockFragmentActivity.");
    }

    ActionBarContextView actionBarContextView = null;

    try {
            ActionBarSherlock actionBarSherlock = (ActionBarSherlock) invokePrivateMethodWithoutParameters(
                SherlockFragmentActivity.class, "getSherlock", activity);
            Log.d("eeee", actionBarSherlock.toString());
            actionBarContextView = (ActionBarContextView) getPrivateField("mActionModeView", actionBarSherlock);
            Log.d("dddd", actionBarContextView.toString());

    } catch (Exception ex) {
            Log.d(LOG_TAG, "Can not find methods to invoke action mode overflow button.");
    }

    if (actionBarContextView == null) {
            Assert.fail("Contextual actionbar is not shown.");
    }

    actionBarContextView.showOverflowMenu();
    sleeper.sleep();
    clicker.clickOnText(text, false, 1, true, 0);
}

所以,我问的是这条线..

actionBarContextView = (ActionBarContextView) getPrivateField("mActionModeView", actionBarSherlock);

我如何知道私有字段名称? 由于函数失败并抛出 null actionBarContextView 的断言失败 ...

【问题讨论】:

    标签: android actionbarsherlock robotium


    【解决方案1】:

    您可以下载 ActionBarSherlock 的源代码,它应该会显示您要查找的内容。

    【讨论】:

      猜你喜欢
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      相关资源
      最近更新 更多