1<!DOCTYPE html> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96<html> 97<head> 98 99 100<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 101<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> 102<meta content="IE=edge" http-equiv="X-UA-Compatible"> 103 104<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" /> 105<title>ViewAction | Android Developers</title> 106 107<!-- STYLESHEETS --> 108<link rel="stylesheet" 109href="http://fonts.googleapis.com/css?family=Roboto+Condensed"> 110<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" 111 title="roboto"> 112 113<link href="../../../../../assets/css/default.css?v=7" rel="stylesheet" type="text/css"> 114 115 116<!-- FULLSCREEN STYLESHEET --> 117<link href="../../../../../assets/css/fullscreen.css" rel="stylesheet" class="fullscreen" 118type="text/css"> 119 120 121<!-- JAVASCRIPT --> 122<script src="http://www.google.com/jsapi" type="text/javascript"></script> 123<script src="../../../../../assets/js/android_3p-bundle.js" type="text/javascript"></script> 124<script type="text/javascript"> 125 var toRoot = "../../../../../"; 126 var metaTags = []; 127 var devsite = false; 128</script> 129<script src="../../../../../assets/js/docs.js?v=5" type="text/javascript"></script> 130 131 132 133<script> 134 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 135 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 136 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 137 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 138 139 ga('create', 'UA-5831155-1', 'android.com'); 140 ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker); 141 ga('send', 'pageview'); 142 ga('universal.send', 'pageview'); // Send page view for new tracker. 143</script> 144 145</head> 146 147<body class="gc-documentation 148 develop reference" itemscope itemtype="http://schema.org/Article"> 149 <div id="doc-api-level" class="" style="display:none"></div> 150 <a name="top"></a> 151 152<a name="top"></a> 153 154<!-- dialog to prompt lang pref change when loaded from hardcoded URL 155<div id="langMessage" style="display:none"> 156 <div> 157 <div class="lang en"> 158 <p>You requested a page in English, would you like to proceed with this language setting?</p> 159 </div> 160 <div class="lang es"> 161 <p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p> 162 </div> 163 <div class="lang ja"> 164 <p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p> 165 </div> 166 <div class="lang ko"> 167 <p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p> 168 </div> 169 <div class="lang ru"> 170 <p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p> 171 </div> 172 <div class="lang zh-cn"> 173 <p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p> 174 </div> 175 <div class="lang zh-tw"> 176 <p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p> 177 </div> 178 <a href="#" class="button yes" onclick="return false;"> 179 <span class="lang en">Yes</span> 180 <span class="lang es">Sí</span> 181 <span class="lang ja">Yes</span> 182 <span class="lang ko">Yes</span> 183 <span class="lang ru">Yes</span> 184 <span class="lang zh-cn">是的</span> 185 <span class="lang zh-tw">没有</span> 186 </a> 187 <a href="#" class="button" onclick="$('#langMessage').hide();return false;"> 188 <span class="lang en">No</span> 189 <span class="lang es">No</span> 190 <span class="lang ja">No</span> 191 <span class="lang ko">No</span> 192 <span class="lang ru">No</span> 193 <span class="lang zh-cn">没有</span> 194 <span class="lang zh-tw">没有</span> 195 </a> 196 </div> 197</div> --> 198 199 200 <!-- Header --> 201 <div id="header-wrapper"> 202 <div class="dac-header" id="header"> 203 204 205 206 207 <div class="dac-header-inner"> 208 <a class="dac-nav-toggle" data-dac-toggle-nav href="javascript:;" title="Open navigation"> 209 <span class="dac-nav-hamburger"> 210 <span class="dac-nav-hamburger-top"></span> 211 <span class="dac-nav-hamburger-mid"></span> 212 <span class="dac-nav-hamburger-bot"></span> 213 </span> 214 </a> 215 <a class="dac-header-logo" href="../../../../../index.html"> 216 <img class="dac-header-logo-image" src="../../../../../assets/images/android_logo.png" 217 srcset="../../../../../assets/images/android_logo@2x.png 2x" 218 width="32" height="36" alt="Android" /> Developers 219 </a> 220 221 <ul class="dac-header-crumbs"> 222 223 <li class="dac-header-crumbs-item"><span class="dac-header-crumbs-link current ">ViewAction</a></li> 224 </ul> 225 226 227 228 229 <div class="dac-header-search" id="search-container"> 230 <div class="dac-header-search-inner"> 231 <div class="dac-sprite dac-search dac-header-search-btn" id="search-btn"></div> 232 <form class="dac-header-search-form" onsubmit="return submit_search()"> 233 <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q" 234 onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)" 235 onkeydown="return search_changed(event, true, '../../../../../')" 236 onkeyup="return search_changed(event, false, '../../../../../')" 237 class="dac-header-search-input" placeholder="Search" /> 238 <a class="dac-header-search-close hide" id="search-close">close</a> 239 </form> 240 </div><!-- end dac-header-search-inner --> 241 </div><!-- end dac-header-search --> 242 243 <div class="search_filtered_wrapper"> 244 <div class="suggest-card reference no-display"> 245 <ul class="search_filtered"> 246 </ul> 247 </div> 248 <div class="suggest-card develop no-display"> 249 <ul class="search_filtered"> 250 </ul> 251 <div class="child-card guides no-display"> 252 </div> 253 <div class="child-card training no-display"> 254 </div> 255 <div class="child-card samples no-display"> 256 </div> 257 </div> 258 <div class="suggest-card design no-display"> 259 <ul class="search_filtered"> 260 </ul> 261 </div> 262 <div class="suggest-card distribute no-display"> 263 <ul class="search_filtered"> 264 </ul> 265 </div> 266 </div> 267 268 269 270 <a class="dac-header-console-btn" href="https://play.google.com/apps/publish/"> 271 <span class="dac-sprite dac-google-play"></span> 272 <span class="dac-visible-desktop-inline">Developer</span> 273 Console 274 </a> 275 276 </div><!-- end header-wrap.wrap --> 277 </div><!-- end header --> 278 279 <div id="searchResults" class="wrap" style="display:none;"> 280 <h2 id="searchTitle">Results</h2> 281 <div id="leftSearchControl" class="search-control">Loading...</div> 282 </div> 283 </div> <!--end header-wrapper --> 284 285 286 <!-- Navigation--> 287 <nav class="dac-nav"> 288 <div class="dac-nav-dimmer" data-dac-toggle-nav></div> 289 290 <ul class="dac-nav-list" data-dac-nav> 291 <li class="dac-nav-item dac-nav-head"> 292 <a class="dac-nav-link dac-nav-logo" data-dac-toggle-nav href="javascript:;" title="Close navigation"> 293 <img class="dac-logo-image" src="../../../../../assets/images/android_logo.png" 294 srcset="../../../../../assets/images/android_logo@2x.png 2x" 295 width="32" height="36" alt="Android" /> Developers 296 </a> 297 </li> 298 <li class="dac-nav-item home"> 299 <a class="dac-nav-link dac-visible-mobile-block" href="../../../../../index.html">Home</a> 300 <ul class="dac-nav-secondary about"> 301 <li class="dac-nav-item about"> 302 <a class="dac-nav-link" href="../../../../../about/index.html">Android</a> 303 </li> 304 <li class="dac-nav-item wear"> 305 <a class="dac-nav-link" href="../../../../../wear/index.html">Wear</a> 306 </li> 307 <li class="dac-nav-item tv"> 308 <a class="dac-nav-link" href="../../../../../tv/index.html">TV</a> 309 </li> 310 <li class="dac-nav-item auto"> 311 <a class="dac-nav-link" href="../../../../../auto/index.html">Auto</a> 312 </li> 313 </ul> 314 </li> 315 <li class="dac-nav-item design"> 316 <a class="dac-nav-link" href="../../../../../design/index.html" 317 zh-tw-lang="設計" 318 zh-cn-lang="设计" 319 ru-lang="Проектирование" 320 ko-lang="디자인" 321 ja-lang="設計" 322 es-lang="Diseñar">Design</a> 323 </li> 324 <li class="dac-nav-item develop"> 325 <a class="dac-nav-link" href="../../../../../develop/index.html" 326 zh-tw-lang="開發" 327 zh-cn-lang="开发" 328 ru-lang="Разработка" 329 ko-lang="개발" 330 ja-lang="開発" 331 es-lang="Desarrollar">Develop</a> 332 <ul class="dac-nav-secondary develop"> 333 <li class="dac-nav-item training"> 334 <a class="dac-nav-link" href="../../../../../training/index.html" 335 zh-tw-lang="訓練課程" 336 zh-cn-lang="培训" 337 ru-lang="Курсы" 338 ko-lang="교육" 339 ja-lang="トレーニング" 340 es-lang="Capacitación">Training</a> 341 </li> 342 <li class="dac-nav-item guide"> 343 <a class="dac-nav-link" href="../../../../../guide/index.html" 344 zh-tw-lang="API 指南" 345 zh-cn-lang="API 指南" 346 ru-lang="Руководства по API" 347 ko-lang="API 가이드" 348 ja-lang="API ガイド" 349 es-lang="Guías de la API">API Guides</a> 350 </li> 351 <li class="dac-nav-item reference"> 352 <a class="dac-nav-link" href="../../../../../reference/packages.html" 353 zh-tw-lang="參考資源" 354 zh-cn-lang="参考" 355 ru-lang="Справочник" 356 ko-lang="참조문서" 357 ja-lang="リファレンス" 358 es-lang="Referencia">Reference</a> 359 </li> 360 <li class="dac-nav-item tools"> 361 <a class="dac-nav-link" href="../../../../../sdk/index.html" 362 zh-tw-lang="相關工具" 363 zh-cn-lang="工具" 364 ru-lang="Инструменты" 365 ko-lang="도구" 366 ja-lang="ツール" 367 es-lang="Herramientas">Tools</a></li> 368 <li class="dac-nav-item google"> 369 <a class="dac-nav-link" href="../../../../../google/index.html">Google Services</a> 370 </li> 371 372 <li class="dac-nav-item preview"> 373 <a class="dac-nav-link" href="../../../../../preview/index.html">Preview</a> 374 </li> 375 </ul> 376 </li> 377 <li class="dac-nav-item distribute"> 378 <a class="dac-nav-link" href="../../../../../distribute/index.html" 379 zh-tw-lang="發佈" 380 zh-cn-lang="分发" 381 ru-lang="Распространение" 382 ko-lang="배포" 383 ja-lang="配布" 384 es-lang="Distribuir">Distribute</a> 385 <ul class="dac-nav-secondary distribute"> 386 <li class="dac-nav-item googleplay"> 387 <a class="dac-nav-link" href="../../../../../distribute/googleplay/index.html">Google Play</a></li> 388 <li class="dac-nav-item essentials"> 389 <a class="dac-nav-link" href="../../../../../distribute/essentials/index.html">Essentials</a></li> 390 <li class="dac-nav-item users"> 391 <a class="dac-nav-link" href="../../../../../distribute/users/index.html">Get Users</a></li> 392 <li class="dac-nav-item engage"> 393 <a class="dac-nav-link" href="../../../../../distribute/engage/index.html">Engage & Retain</a></li> 394 <li class="dac-nav-item monetize"> 395 <a class="dac-nav-link" href="../../../../../distribute/monetize/index.html">Earn</a> 396 </li> 397 <li class="dac-nav-item analyze"> 398 <a class="dac-nav-link" href="../../../../../distribute/analyze/index.html">Analyze</a> 399 </li> 400 <li class="dac-nav-item stories"> 401 <a class="dac-nav-link" href="../../../../../distribute/stories/index.html">Stories</a> 402 </li> 403 </ul> 404 </li> 405 </ul> 406 </nav> 407 <!-- end navigation--> 408 409 410 411 412 413 414 <div class="wrap clearfix" id="body-content"><div class="cols"> 415 <div class="col-4 dac-hidden-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement"> 416 <div id="devdoc-nav"> 417 <div id="api-nav-header"> 418 <div id="api-level-toggle"> 419 <label for="apiLevelCheckbox" class="disabled" 420 title="Select your target API level to dim unavailable APIs">API level: </label> 421 <div class="select-wrapper"> 422 <select id="apiLevelSelector"> 423 <!-- option elements added by buildApiLevelSelector() --> 424 </select> 425 </div> 426 </div><!-- end toggle --> 427 <div id="api-nav-title">Android APIs</div> 428 </div><!-- end nav header --> 429 <script> 430 var SINCE_DATA = [ ]; 431 buildApiLevelSelector(); 432 </script> 433 434 <div id="swapper"> 435 <div id="nav-panels"> 436 <div id="resize-packages-nav"> 437 <div id="packages-nav" class="scroll-pane"> 438 439 <ul> 440 441 <li class="api apilevel-"> 442 <a href="../../../../../reference/android/support/test/package-summary.html">android.support.test</a></li> 443 <li class="api apilevel-"> 444 <a href="../../../../../reference/android/support/test/annotation/package-summary.html">android.support.test.annotation</a></li> 445 <li class="selected api apilevel-"> 446 <a href="../../../../../reference/android/support/test/espresso/package-summary.html">android.support.test.espresso</a></li> 447 <li class="api apilevel-"> 448 <a href="../../../../../reference/android/support/test/espresso/action/package-summary.html">android.support.test.espresso.action</a></li> 449 <li class="api apilevel-"> 450 <a href="../../../../../reference/android/support/test/espresso/assertion/package-summary.html">android.support.test.espresso.assertion</a></li> 451 <li class="api apilevel-"> 452 <a href="../../../../../reference/android/support/test/espresso/base/package-summary.html">android.support.test.espresso.base</a></li> 453 <li class="api apilevel-"> 454 <a href="../../../../../reference/android/support/test/espresso/contrib/package-summary.html">android.support.test.espresso.contrib</a></li> 455 <li class="api apilevel-"> 456 <a href="../../../../../reference/android/support/test/espresso/intent/package-summary.html">android.support.test.espresso.intent</a></li> 457 <li class="api apilevel-"> 458 <a href="../../../../../reference/android/support/test/espresso/intent/matcher/package-summary.html">android.support.test.espresso.intent.matcher</a></li> 459 <li class="api apilevel-"> 460 <a href="../../../../../reference/android/support/test/espresso/intent/rule/package-summary.html">android.support.test.espresso.intent.rule</a></li> 461 <li class="api apilevel-"> 462 <a href="../../../../../reference/android/support/test/espresso/matcher/package-summary.html">android.support.test.espresso.matcher</a></li> 463 <li class="api apilevel-"> 464 <a href="../../../../../reference/android/support/test/espresso/util/package-summary.html">android.support.test.espresso.util</a></li> 465 <li class="api apilevel-"> 466 <a href="../../../../../reference/android/support/test/espresso/web/action/package-summary.html">android.support.test.espresso.web.action</a></li> 467 <li class="api apilevel-"> 468 <a href="../../../../../reference/android/support/test/espresso/web/assertion/package-summary.html">android.support.test.espresso.web.assertion</a></li> 469 <li class="api apilevel-"> 470 <a href="../../../../../reference/android/support/test/espresso/web/bridge/package-summary.html">android.support.test.espresso.web.bridge</a></li> 471 <li class="api apilevel-"> 472 <a href="../../../../../reference/android/support/test/espresso/web/matcher/package-summary.html">android.support.test.espresso.web.matcher</a></li> 473 <li class="api apilevel-"> 474 <a href="../../../../../reference/android/support/test/espresso/web/model/package-summary.html">android.support.test.espresso.web.model</a></li> 475 <li class="api apilevel-"> 476 <a href="../../../../../reference/android/support/test/espresso/web/sugar/package-summary.html">android.support.test.espresso.web.sugar</a></li> 477 <li class="api apilevel-"> 478 <a href="../../../../../reference/android/support/test/espresso/web/webdriver/package-summary.html">android.support.test.espresso.web.webdriver</a></li> 479 <li class="api apilevel-"> 480 <a href="../../../../../reference/android/support/test/filters/package-summary.html">android.support.test.filters</a></li> 481 <li class="api apilevel-"> 482 <a href="../../../../../reference/android/support/test/rule/package-summary.html">android.support.test.rule</a></li> 483 <li class="api apilevel-"> 484 <a href="../../../../../reference/android/support/test/runner/package-summary.html">android.support.test.runner</a></li> 485 <li class="api apilevel-"> 486 <a href="../../../../../reference/android/support/test/runner/intent/package-summary.html">android.support.test.runner.intent</a></li> 487 <li class="api apilevel-"> 488 <a href="../../../../../reference/android/support/test/runner/lifecycle/package-summary.html">android.support.test.runner.lifecycle</a></li> 489 <li class="api apilevel-"> 490 <a href="../../../../../reference/android/support/test/uiautomator/package-summary.html">android.support.test.uiautomator</a></li> 491 </ul><br/> 492 493 </div> <!-- end packages-nav --> 494 </div> <!-- end resize-packages --> 495 <div id="classes-nav" class="scroll-pane"> 496 497 498 499 <ul> 500 501 502 <li><h2>Interfaces</h2> 503 <ul> 504 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/BaseLayerComponent.html">BaseLayerComponent</a></li> 505 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/EspressoException.html">EspressoException</a></li> 506 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/FailureHandler.html">FailureHandler</a></li> 507 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingResource.html">IdlingResource</a></li> 508 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a></li> 509 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/UiController.html">UiController</a></li> 510 <li class="selected api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewAction.html">ViewAction</a></li> 511 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewAssertion.html">ViewAssertion</a></li> 512 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewFinder.html">ViewFinder</a></li> 513 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewInteractionComponent.html">ViewInteractionComponent</a></li> 514 </ul> 515 </li> 516 517 <li><h2>Classes</h2> 518 <ul> 519 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/AmbiguousViewMatcherException.Builder.html">AmbiguousViewMatcherException.Builder</a></li> 520 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/DataInteraction.html">DataInteraction</a></li> 521 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/Espresso.html">Espresso</a></li> 522 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/GraphHolder.html">GraphHolder</a></li> 523 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingPolicies.html">IdlingPolicies</a></li> 524 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingPolicy.html">IdlingPolicy</a></li> 525 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoMatchingViewException.Builder.html">NoMatchingViewException.Builder</a></li> 526 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/PerformException.Builder.html">PerformException.Builder</a></li> 527 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/Root.html">Root</a></li> 528 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/Root.Builder.html">Root.Builder</a></li> 529 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/ViewInteraction.html">ViewInteraction</a></li> 530 </ul> 531 </li> 532 533 534 <li><h2>Exceptions</h2> 535 <ul> 536 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/AmbiguousViewMatcherException.html">AmbiguousViewMatcherException</a></li> 537 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/AppNotIdleException.html">AppNotIdleException</a></li> 538 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/IdlingResourceTimeoutException.html">IdlingResourceTimeoutException</a></li> 539 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/InjectEventSecurityException.html">InjectEventSecurityException</a></li> 540 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoActivityResumedException.html">NoActivityResumedException</a></li> 541 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoMatchingRootException.html">NoMatchingRootException</a></li> 542 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/NoMatchingViewException.html">NoMatchingViewException</a></li> 543 <li class="api apilevel-"><a href="../../../../../reference/android/support/test/espresso/PerformException.html">PerformException</a></li> 544 </ul> 545 </li> 546 547 </ul><br/> 548 549 550 </div><!-- end classes --> 551 </div><!-- end nav-panels --> 552 <div id="nav-tree" style="display:none" class="scroll-pane"> 553 <div id="tree-list"></div> 554 </div><!-- end nav-tree --> 555 </div><!-- end swapper --> 556 <div id="nav-swap"> 557 <a class="fullscreen">fullscreen</a> 558 <a href='#' onclick='swapNav();return false;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a> 559 </div> 560 </div> <!-- end devdoc-nav --> 561 </div> <!-- end side-nav --> 562 <script type="text/javascript"> 563 // init fullscreen based on user pref 564 var fullscreen = readCookie("fullscreen"); 565 if (fullscreen != 0) { 566 if (fullscreen == "false") { 567 toggleFullscreen(false); 568 } else { 569 toggleFullscreen(true); 570 } 571 } 572 // init nav version for mobile 573 if (isMobile) { 574 swapNav(); // tree view should be used on mobile 575 $('#nav-swap').hide(); 576 } else { 577 chooseDefaultNav(); 578 if ($("#nav-tree").is(':visible')) { 579 init_default_navtree("../../../../../"); 580 } 581 } 582 // scroll the selected page into view 583 $(document).ready(function() { 584 scrollIntoView("packages-nav"); 585 scrollIntoView("classes-nav"); 586 }); 587 </script> 588 589 590 591 592 593<div class="col-12" id="doc-col"> 594 595<div id="api-info-block"> 596 597 598 599 600<div class="sum-details-links"> 601 602Summary: 603 604 605 606 607 608 609 610 611 612 613 614 <a href="#pubmethods">Methods</a> 615 616 617 618 619| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a> 620 621</div><!-- end sum-details-links --> 622<div class="api-level"> 623 624 625 626 627</div> 628</div><!-- end api-info-block --> 629 630 631<!-- ======== START OF CLASS DATA ======== --> 632 633<div id="jd-header"> 634 public 635 636 637 638 interface 639<h1 itemprop="name">ViewAction</h1> 640 641 642 643 644 645 646 647 648 649 650 651</div><!-- end header --> 652 653<div id="naMessage"></div> 654 655<div id="jd-content" class="api apilevel-"> 656<table class="jd-inheritance-table"> 657 658 659 <tr> 660 661 <td colspan="1" class="jd-inheritance-class-cell">android.support.test.espresso.ViewAction</td> 662 </tr> 663 664 665</table> 666 667 668 669 670 671 672<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;"> 673 674 <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed" 675 ><img id="subclasses-indirect-trigger" 676 src="../../../../../assets/images/triangle-closed.png" 677 class="jd-expando-trigger-img" /></a>Known Indirect Subclasses 678 679 <div id="subclasses-indirect"> 680 <div id="subclasses-indirect-list" 681 class="jd-inheritedlinks" 682 683 > 684 685 686 <a href="../../../../../reference/android/support/test/espresso/action/AdapterDataLoaderAction.html">AdapterDataLoaderAction</a>, 687 688 <a href="../../../../../reference/android/support/test/espresso/web/action/AtomAction.html">AtomAction</a><E>, 689 690 <a href="../../../../../reference/android/support/test/espresso/action/CloseKeyboardAction.html">CloseKeyboardAction</a>, 691 692 <a href="../../../../../reference/android/support/test/espresso/action/EditorAction.html">EditorAction</a>, 693 694 <a href="../../../../../reference/android/support/test/espresso/web/action/EnableJavascriptAction.html">EnableJavascriptAction</a>, 695 696 <a href="../../../../../reference/android/support/test/espresso/action/GeneralClickAction.html">GeneralClickAction</a>, 697 698 <a href="../../../../../reference/android/support/test/espresso/action/GeneralSwipeAction.html">GeneralSwipeAction</a>, 699 700 <a href="../../../../../reference/android/support/test/espresso/action/KeyEventAction.html">KeyEventAction</a>, 701 702 <a href="../../../../../reference/android/support/test/espresso/action/OpenLinkAction.html">OpenLinkAction</a>, 703 704 <a href="../../../../../reference/android/support/test/espresso/contrib/RecyclerViewActions.PositionableRecyclerViewAction.html">RecyclerViewActions.PositionableRecyclerViewAction</a>, 705 706 <a href="../../../../../reference/android/support/test/espresso/action/ReplaceTextAction.html">ReplaceTextAction</a>, 707 708 <a href="../../../../../reference/android/support/test/espresso/action/ScrollToAction.html">ScrollToAction</a>, 709 710 <a href="../../../../../reference/android/support/test/espresso/action/TypeTextAction.html">TypeTextAction</a> 711 712 713 </div> 714 <div id="subclasses-indirect-summary" 715 style="display: none;" 716 > 717 718 <table class="jd-sumtable-expando"> 719 720 <tr class="alt-color api apilevel-" > 721 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/AdapterDataLoaderAction.html">AdapterDataLoaderAction</a></td> 722 <td class="jd-descrcol" width="100%"> 723 Forces an AdapterView to ensure that the data matching a provided data matcher 724 is loaded into the current view hierarchy. 725 726 727 728 </td> 729 </tr> 730 731 732 <tr class=" api apilevel-" > 733 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/web/action/AtomAction.html">AtomAction</a><E></td> 734 <td class="jd-descrcol" width="100%"> 735 A ViewAction which causes the provided Atom to be evaluated within a webview. 736 737 738 739 </td> 740 </tr> 741 742 743 <tr class="alt-color api apilevel-" > 744 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/CloseKeyboardAction.html">CloseKeyboardAction</a></td> 745 <td class="jd-descrcol" width="100%"> 746 Closes soft keyboard. 747 748 749 750 </td> 751 </tr> 752 753 754 <tr class=" api apilevel-" > 755 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/EditorAction.html">EditorAction</a></td> 756 <td class="jd-descrcol" width="100%"> 757 Performs whatever editor (IME) action is available on a view. 758 759 760 761 </td> 762 </tr> 763 764 765 <tr class="alt-color api apilevel-" > 766 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/web/action/EnableJavascriptAction.html">EnableJavascriptAction</a></td> 767 <td class="jd-descrcol" width="100%"> 768 Forcibly enables Javascript on a WebView. 769 770 771 772 </td> 773 </tr> 774 775 776 <tr class=" api apilevel-" > 777 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/GeneralClickAction.html">GeneralClickAction</a></td> 778 <td class="jd-descrcol" width="100%"> 779 Enables clicking on views. 780 781 782 783 </td> 784 </tr> 785 786 787 <tr class="alt-color api apilevel-" > 788 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/GeneralSwipeAction.html">GeneralSwipeAction</a></td> 789 <td class="jd-descrcol" width="100%"> 790 Enables swiping across a view. 791 792 793 794 </td> 795 </tr> 796 797 798 <tr class=" api apilevel-" > 799 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/KeyEventAction.html">KeyEventAction</a></td> 800 <td class="jd-descrcol" width="100%"> 801 Enables pressing KeyEvents on views. 802 803 804 805 </td> 806 </tr> 807 808 809 <tr class="alt-color api apilevel-" > 810 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/OpenLinkAction.html">OpenLinkAction</a></td> 811 <td class="jd-descrcol" width="100%"> 812 Invokes onClick of a link within a TextView (made with Linkify or via another method). 813 814 815 816 </td> 817 </tr> 818 819 820 <tr class=" api apilevel-" > 821 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/contrib/RecyclerViewActions.PositionableRecyclerViewAction.html">RecyclerViewActions.PositionableRecyclerViewAction</a></td> 822 <td class="jd-descrcol" width="100%"> 823 Most RecyclerViewActions are given a matcher to select a particular view / viewholder within 824 the RecyclerView. 825 826 827 828 </td> 829 </tr> 830 831 832 <tr class="alt-color api apilevel-" > 833 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/ReplaceTextAction.html">ReplaceTextAction</a></td> 834 <td class="jd-descrcol" width="100%"> 835 Replaces view text by setting <code><a href="../../../../../reference/android/widget/EditText.html">EditText</a></code>s text property to given String. 836 837 838 839 </td> 840 </tr> 841 842 843 <tr class=" api apilevel-" > 844 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/ScrollToAction.html">ScrollToAction</a></td> 845 <td class="jd-descrcol" width="100%"> 846 Enables scrolling to the given view. 847 848 849 850 </td> 851 </tr> 852 853 854 <tr class="alt-color api apilevel-" > 855 <td class="jd-linkcol"><a href="../../../../../reference/android/support/test/espresso/action/TypeTextAction.html">TypeTextAction</a></td> 856 <td class="jd-descrcol" width="100%"> 857 Enables typing text on views. 858 859 860 861 </td> 862 </tr> 863 864 865 </table> 866 867 </div> 868 </div> 869</td></tr></table> 870 871 872<div class="jd-descr"> 873 874 875<h2>Class Overview</h2> 876<p itemprop="articleBody">Responsible for performing an interaction on the given View element.<br> 877 <p> 878 This is part of the test framework public API - developers are free to write their own ViewAction 879 implementations when necessary. When implementing a new ViewAction, follow these rules: 880 <ul> 881 <li>Inject motion events or key events via the UiController to simulate user interactions. 882 <li>Do not mutate the view directly via setter methods and other state changing methods on the 883 view parameter. 884 <li>Do not throw AssertionErrors. Assertions belong in ViewAssertion classes. 885 <li>View action code will executed on the UI thread, therefore you should not block, perform 886 sleeps, or perform other expensive computations. 887 <li>The test framework will wait for the UI thread to be idle both before and after perform() is 888 called. This means that the action is guaranteed to be synchronized with any other view 889 operations. 890 <li>Downcasting the View object to an expected subtype is allowed, so long as the object 891 expresses the subtype matches the constraints as specified in <code>getConstraints</code>. 892 </ul> 893</p> 894 895 896 897 898 899</div><!-- jd-descr --> 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916<div class="jd-descr"> 917 918 919<h2>Summary</h2> 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947<!-- ========== METHOD SUMMARY =========== --> 948<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr> 949 950 951 952 953 <tr class="alt-color api apilevel-" > 954 <td class="jd-typecol"><nobr> 955 abstract 956 957 958 959 960 Matcher<View></nobr> 961 </td> 962 <td class="jd-linkcol" width="100%"><nobr> 963 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/ViewAction.html#getConstraints()">getConstraints</a></span>()</nobr> 964 965 <div class="jd-descrdiv"> 966 A mechanism for ViewActions to specify what type of views they can operate on. 967 968 969 970 </div> 971 972 </td></tr> 973 974 975 976 <tr class=" api apilevel-" > 977 <td class="jd-typecol"><nobr> 978 abstract 979 980 981 982 983 String</nobr> 984 </td> 985 <td class="jd-linkcol" width="100%"><nobr> 986 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/ViewAction.html#getDescription()">getDescription</a></span>()</nobr> 987 988 <div class="jd-descrdiv"> 989 Returns a description of the view action. 990 991 992 993 </div> 994 995 </td></tr> 996 997 998 999 <tr class="alt-color api apilevel-" > 1000 <td class="jd-typecol"><nobr> 1001 abstract 1002 1003 1004 1005 1006 void</nobr> 1007 </td> 1008 <td class="jd-linkcol" width="100%"><nobr> 1009 <span class="sympad"><a href="../../../../../reference/android/support/test/espresso/ViewAction.html#perform(android.support.test.espresso.UiController, android.view.View)">perform</a></span>(<a href="../../../../../reference/android/support/test/espresso/UiController.html">UiController</a> uiController, View view)</nobr> 1010 1011 <div class="jd-descrdiv"> 1012 Performs this action on the given view. 1013 1014 1015 1016 </div> 1017 1018 </td></tr> 1019 1020 1021 1022</table> 1023 1024 1025 1026 1027 1028 1029 1030</div><!-- jd-descr (summary) --> 1031 1032<!-- Details --> 1033 1034 1035 1036 1037 1038 1039 1040 1041<!-- XML Attributes --> 1042 1043 1044<!-- Enum Values --> 1045 1046 1047<!-- Constants --> 1048 1049 1050<!-- Fields --> 1051 1052 1053<!-- Public ctors --> 1054 1055 1056 1057<!-- ========= CONSTRUCTOR DETAIL ======== --> 1058<!-- Protected ctors --> 1059 1060 1061 1062<!-- ========= METHOD DETAIL ======== --> 1063<!-- Public methdos --> 1064 1065<h2>Public Methods</h2> 1066 1067 1068 1069<A NAME="getConstraints()"></A> 1070 1071<div class="jd-details api apilevel-"> 1072 <h4 class="jd-details-title"> 1073 <span class="normal"> 1074 public 1075 1076 1077 abstract 1078 1079 Matcher<View> 1080 </span> 1081 <span class="sympad">getConstraints</span> 1082 <span class="normal">()</span> 1083 </h4> 1084 <div class="api-level"> 1085 <div></div> 1086 1087 1088 1089 </div> 1090 <div class="jd-details-descr"> 1091 1092 1093 1094 1095 <div class="jd-tagdata jd-tagdescr"><p>A mechanism for ViewActions to specify what type of views they can operate on. 1096 1097 A ViewAction can demand that the view passed to perform meets certain constraints. For example 1098 it may want to ensure the view is already in the viewable physical screen of the device or is 1099 of a certain type.</p></div> 1100 <div class="jd-tagdata"> 1101 <h5 class="jd-tagtitle">Returns</h5> 1102 <ul class="nolist"><li>a <a href="http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/Matcher.html"> 1103 <code>Matcher</code></a> that will be tested prior to calling perform. 1104</li></ul> 1105 </div> 1106 1107 </div> 1108</div> 1109 1110 1111<A NAME="getDescription()"></A> 1112 1113<div class="jd-details api apilevel-"> 1114 <h4 class="jd-details-title"> 1115 <span class="normal"> 1116 public 1117 1118 1119 abstract 1120 1121 String 1122 </span> 1123 <span class="sympad">getDescription</span> 1124 <span class="normal">()</span> 1125 </h4> 1126 <div class="api-level"> 1127 <div></div> 1128 1129 1130 1131 </div> 1132 <div class="jd-details-descr"> 1133 1134 1135 1136 1137 <div class="jd-tagdata jd-tagdescr"><p>Returns a description of the view action. The description should not be overly long and should 1138 fit nicely in a sentence like: "performing %description% action on view with id ..." 1139</p></div> 1140 1141 </div> 1142</div> 1143 1144 1145<A NAME="perform(android.support.test.espresso.UiController, android.view.View)"></A> 1146 1147<div class="jd-details api apilevel-"> 1148 <h4 class="jd-details-title"> 1149 <span class="normal"> 1150 public 1151 1152 1153 abstract 1154 1155 void 1156 </span> 1157 <span class="sympad">perform</span> 1158 <span class="normal">(<a href="../../../../../reference/android/support/test/espresso/UiController.html">UiController</a> uiController, View view)</span> 1159 </h4> 1160 <div class="api-level"> 1161 <div></div> 1162 1163 1164 1165 </div> 1166 <div class="jd-details-descr"> 1167 1168 1169 1170 1171 <div class="jd-tagdata jd-tagdescr"><p>Performs this action on the given view.</p></div> 1172 <div class="jd-tagdata"> 1173 <h5 class="jd-tagtitle">Parameters</h5> 1174 <table class="jd-tagtable"> 1175 <tr> 1176 <th>uiController</td> 1177 <td>the controller to use to interact with the UI.</td> 1178 </tr> 1179 <tr> 1180 <th>view</td> 1181 <td>the view to act upon. never null. 1182</td> 1183 </tr> 1184 </table> 1185 </div> 1186 1187 </div> 1188</div> 1189 1190 1191 1192 1193 1194<!-- ========= METHOD DETAIL ======== --> 1195 1196 1197 1198<!-- ========= END OF CLASS DATA ========= --> 1199<A NAME="navbar_top"></A> 1200</div> <!-- jd-content --> 1201 1202<div class="wrap"> 1203 <div class="dac-footer"> 1204 <div class="cols dac-footer-main"> 1205 <div class="col-1of2"> 1206 <a class="dac-footer-getnews" data-modal-toggle="newsletter" href="javascript:;">Get news & tips <span 1207 class="dac-fab dac-primary"><i class="dac-sprite dac-mail"></i></span></a> 1208 </div> 1209 <div class="col-1of2 dac-footer-reachout"> 1210 <div class="dac-footer-contact"> 1211 <a class="dac-footer-contact-link" href="http://android-developers.blogspot.com/">Blog</a> 1212 <a class="dac-footer-contact-link" href="/support.html">Support</a> 1213 </div> 1214 <div class="dac-footer-social"> 1215 <a class="dac-fab dac-footer-social-link" href="https://www.youtube.com/user/androiddevelopers"><i class="dac-sprite dac-youtube"></i></a> 1216 <a class="dac-fab dac-footer-social-link" href="https://plus.google.com/+AndroidDevelopers"><i class="dac-sprite dac-gplus"></i></a> 1217 <a class="dac-fab dac-footer-social-link" href="https://twitter.com/AndroidDev"><i class="dac-sprite dac-twitter"></i></a> 1218 </div> 1219 </div> 1220 </div> 1221 1222 <hr class="dac-footer-separator"/> 1223 1224 1225 <p class="dac-footer-copyright"> 1226 1227 Except as noted, this content is licensed under <a 1228 href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 1229 For details and restrictions, see the <a href="../../../../../license.html"> 1230 Content License</a>. 1231 </p> 1232 <p class="dac-footer-build"> 1233 1234 Android r — 1235<script src="../../../../../timestamp.js" type="text/javascript"></script> 1236<script>document.write(BUILD_TIMESTAMP)</script> 1237 1238 </p> 1239 1240 1241 <p class="dac-footer-links"> 1242 <a href="/about/index.html">About Android</a> 1243 <a href="/auto/index.html">Auto</a> 1244 <a href="/tv/index.html">TV</a> 1245 <a href="/wear/index.html">Wear</a> 1246 <a href="/legal.html">Legal</a> 1247 1248 <span id="language" class="locales"> 1249 <select name="language" onchange="changeLangPref(this.value, true)"> 1250 <option value="en" selected="selected">English</option> 1251 <option value="es">Español</option> 1252 <option value="ja">日本語</option> 1253 <option value="ko">한국어</option> 1254 <option value="ru">Русский</option> 1255 <option value="zh-cn">中文(简体)</option> 1256 <option value="zh-tw">中文(繁體)</option> 1257 </select> 1258 </span> 1259 </p> 1260 </div> 1261</div> <!-- end footer --> 1262 1263<div data-modal="newsletter" data-newsletter data-swap class="dac-modal newsletter"> 1264 <div class="dac-modal-container"> 1265 <div class="dac-modal-window"> 1266 <header class="dac-modal-header"> 1267 <button class="dac-modal-header-close" data-modal-toggle><i class="dac-sprite dac-close"></i></button> 1268 <div class="dac-swap" data-swap-container> 1269 <section class="dac-swap-section dac-active dac-down"> 1270 <h2 class="norule dac-modal-header-title">Get the latest Android developer news and tips that will help you find success on Google Play.</h2> 1271 <p class="dac-modal-header-subtitle">* Required Fields</p> 1272 </section> 1273 <section class="dac-swap-section dac-up"> 1274 <h2 class="norule dac-modal-header-title">Hooray!</h2> 1275 </section> 1276 </div> 1277 </header> 1278 <div class="dac-swap" data-swap-container> 1279 <section class="dac-swap-section dac-active dac-left"> 1280 <form action="https://docs.google.com/forms/d/1QgnkzbEJIDu9lMEea0mxqWrXUJu0oBCLD7ar23V0Yys/formResponse" class="dac-form" method="post" target="dac-newsletter-iframe"> 1281 <section class="dac-modal-content"> 1282 <fieldset class="dac-form-fieldset"> 1283 <div class="cols"> 1284 <div class="col-1of2 newsletter-leftCol"> 1285 <div class="dac-form-input-group"> 1286 <label for="newsletter-full-name" class="dac-form-floatlabel">Full name</label> 1287 <input type="text" class="dac-form-input" name="entry.1357890476" id="newsletter-full-name" required> 1288 <span class="dac-form-required">*</span> 1289 </div> 1290 <div class="dac-form-input-group"> 1291 <label for="newsletter-email" class="dac-form-floatlabel">Email address</label> 1292 <input type="email" class="dac-form-input" name="entry.472100832" id="newsletter-email" required> 1293 <span class="dac-form-required">*</span> 1294 </div> 1295 </div> 1296 <div class="col-1of2 newsletter-rightCol"> 1297 <div class="dac-form-input-group"> 1298 <label for="newsletter-company" class="dac-form-floatlabel">Company / developer name</label> 1299 <input type="text" class="dac-form-input" name="entry.1664780309" id="newsletter-company"> 1300 </div> 1301 <div class="dac-form-input-group"> 1302 <label for="newsletter-play-store" class="dac-form-floatlabel">One of your Play Store app URLs</label> 1303 <input type="url" class="dac-form-input" name="entry.47013838" id="newsletter-play-store" required> 1304 <span class="dac-form-required">*</span> 1305 </div> 1306 </div> 1307 </div> 1308 </fieldset> 1309 <fieldset class="dac-form-fieldset"> 1310 <div class="cols"> 1311 <div class="col-1of2 newsletter-leftCol"> 1312 <legend class="dac-form-legend">Which best describes your business:<span class="dac-form-required">*</span> 1313 </legend> 1314 <div class="dac-form-radio-group"> 1315 <input type="radio" value="Apps" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-app" required> 1316 <label for="newsletter-business-type-app" class="dac-form-radio-button"></label> 1317 <label for="newsletter-business-type-app" class="dac-form-label">Apps</label> 1318 </div> 1319 <div class="dac-form-radio-group"> 1320 <input type="radio" value="Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-games" required> 1321 <label for="newsletter-business-type-games" class="dac-form-radio-button"></label> 1322 <label for="newsletter-business-type-games" class="dac-form-label">Games</label> 1323 </div> 1324 <div class="dac-form-radio-group"> 1325 <input type="radio" value="Apps and Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-appsgames" required> 1326 <label for="newsletter-business-type-appsgames" class="dac-form-radio-button"></label> 1327 <label for="newsletter-business-type-appsgames" class="dac-form-label">Apps & Games</label> 1328 </div> 1329 </div> 1330 <div class="col-1of2 newsletter-rightCol newsletter-checkboxes"> 1331 <div class="dac-form-radio-group"> 1332 <div class="dac-media"> 1333 <div class="dac-media-figure"> 1334 <input type="checkbox" class="dac-form-checkbox" name="entry.732309842" id="newsletter-add" required value="Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities."> 1335 <label for="newsletter-add" class="dac-form-checkbox-button"></label> 1336 </div> 1337 <div class="dac-media-body"> 1338 <label for="newsletter-add" class="dac-form-label dac-form-aside">Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.<span class="dac-form-required">*</span></label> 1339 </div> 1340 </div> 1341 </div> 1342 <div class="dac-form-radio-group"> 1343 <div class="dac-media"> 1344 <div class="dac-media-figure"> 1345 <input type="checkbox" class="dac-form-checkbox" name="entry.2045036090" id="newsletter-terms" required value="I acknowledge that the information provided in this form will be subject to Google's privacy policy (https://www.google.com/policies/privacy/)."> 1346 <label for="newsletter-terms" class="dac-form-checkbox-button"></label> 1347 </div> 1348 <div class="dac-media-body"> 1349 <label for="newsletter-terms" class="dac-form-label dac-form-aside">I acknowledge that the information provided in this form will be subject to <a href="https://www.google.com/policies/privacy/">Google's privacy policy</a>.<span class="dac-form-required">*</span></label> 1350 </div> 1351 </div> 1352 </div> 1353 </div> 1354 </div> 1355 </fieldset> 1356 </section> 1357 <footer class="dac-modal-footer"> 1358 <div class="cols"> 1359 <div class="col-2of5"> 1360 </div> 1361 </div> 1362 <button type="submit" value="Submit" class="dac-fab dac-primary dac-large dac-modal-action"><i class="dac-sprite dac-arrow-right"></i></button> 1363 </footer> 1364 </form> 1365 </section> 1366 <section class="dac-swap-section dac-right"> 1367 <div class="dac-modal-content"> 1368 <p class="newsletter-success-message"> 1369 You have successfully signed up for the latest Android developer news and tips. 1370 </p> 1371 </div> 1372 </section> 1373 </div> 1374 </div> 1375 </div> 1376</div> <!-- end footer --> 1377 1378</div><!-- end doc-content --> 1379 1380</div> <!-- end .cols --> 1381</div> <!-- end body-content --> 1382 1383 1384 1385 1386 1387 1388</body> 1389</html> 1390