blob: 1fa8d074eb125f18e67b3b62bf646be01370cb33 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="../../../../../../favicon.ico" />
<title>AdapterViewProtocol | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
href="http://fonts.googleapis.com/css?family=Roboto+Condensed">
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
title="roboto">
<link href="../../../../../../assets/css/default.css?v=2" rel="stylesheet" type="text/css">
<!-- FULLSCREEN STYLESHEET -->
<link href="../../../../../../assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
type="text/css">
<!-- JAVASCRIPT -->
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script src="../../../../../../assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "../../../../../../";
var metaTags = [];
var devsite = false;
</script>
<script src="../../../../../../assets/js/docs.js?v=2" type="text/javascript"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-5831155-1', 'android.com');
ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker);
ga('send', 'pageview');
ga('universal.send', 'pageview'); // Send page view for new tracker.
</script>
</head>
<body class="gc-documentation
develop reference" itemscope itemtype="http://schema.org/Article">
<div id="doc-api-level" class="" style="display:none"></div>
<a name="top"></a>
<a name="top"></a>
<!-- Header -->
<div id="header-wrapper">
<div id="header">
<div class="wrap" id="header-wrap">
<div class="col-3 logo">
<a href="../../../../../../index.html">
<img src="../../../../../../assets/images/dac_logo.png"
srcset="../../../../../../assets/images/dac_logo@2x.png 2x"
width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
<a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
<ul class="nav-x col-9">
<li class="design">
<a href="../../../../../../design/index.html"
zh-tw-lang="設計"
zh-cn-lang="设计"
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="../../../../../../develop/index.html"
zh-tw-lang="開發"
zh-cn-lang="开发"
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="../../../../../../distribute/index.html"
zh-tw-lang="發佈"
zh-cn-lang="分发"
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
es-lang="Distribuir"
>Distribute</a></li>
</ul>
<div class="menu-container">
<div class="moremenu">
<div id="more-btn"></div>
</div>
<div class="morehover" id="moremenu">
<div class="top"></div>
<div class="mid">
<div class="header">Links</div>
<ul>
<li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li>
<li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
<li><a href="../../../../../../about/index.html">About Android</a></li>
</ul>
<div class="header">Android Sites</div>
<ul>
<li><a href="http://www.android.com">Android.com</a></li>
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
<br class="clearfix" />
</div><!-- end 'mid' -->
<div class="bottom"></div>
</div><!-- end 'moremenu' -->
<div class="search" id="search-container">
<div class="search-inner">
<div id="search-btn"></div>
<div class="left"></div>
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
onkeydown="return search_changed(event, true, '../../../../../../')"
onkeyup="return search_changed(event, false, '../../../../../../')" />
</form>
<div class="right"></div>
<a class="close hide">close</a>
<div class="left"></div>
<div class="right"></div>
</div><!-- end search-inner -->
</div><!-- end search-container -->
<div class="search_filtered_wrapper reference">
<div class="suggest-card reference no-display">
<ul class="search_filtered">
</ul>
</div>
</div>
<div class="search_filtered_wrapper docs">
<div class="suggest-card dummy no-display">&nbsp;</div>
<div class="suggest-card develop no-display">
<ul class="search_filtered">
</ul>
<div class="child-card guides no-display">
</div>
<div class="child-card training no-display">
</div>
<div class="child-card samples no-display">
</div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
</ul>
</div>
<div class="suggest-card distribute no-display">
<ul class="search_filtered">
</ul>
</div>
</div>
</div><!-- end menu-container (search and menu widget) -->
<!-- Expanded quicknav -->
<div id="quicknav" class="col-13">
<ul>
<li class="about">
<ul>
<li><a href="../../../../../../about/index.html">About</a></li>
<li><a href="../../../../../../wear/index.html">Wear</a></li>
<li><a href="../../../../../../tv/index.html">TV</a></li>
<li><a href="../../../../../../auto/index.html">Auto</a></li>
</ul>
</li>
<li class="design">
<ul>
<li><a href="../../../../../../design/index.html">Get Started</a></li>
<li><a href="../../../../../../design/devices.html">Devices</a></li>
<li><a href="../../../../../../design/style/index.html">Style</a></li>
<li><a href="../../../../../../design/patterns/index.html">Patterns</a></li>
<li><a href="../../../../../../design/building-blocks/index.html">Building Blocks</a></li>
<li><a href="../../../../../../design/downloads/index.html">Downloads</a></li>
<li><a href="../../../../../../design/videos/index.html">Videos</a></li>
</ul>
</li>
<li class="develop">
<ul>
<li><a href="../../../../../../training/index.html"
zh-tw-lang="訓練課程"
zh-cn-lang="培训"
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
<li><a href="../../../../../../guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="../../../../../../reference/packages.html"
zh-tw-lang="參考資源"
zh-cn-lang="参考"
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
es-lang="Referencia"
>Reference</a></li>
<li><a href="../../../../../../sdk/index.html"
zh-tw-lang="相關工具"
zh-cn-lang="工具"
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
es-lang="Herramientas"
>Tools</a>
</li>
<li><a href="../../../../../../google/index.html">Google Services</a>
</li>
</ul>
</li>
<li class="distribute last">
<ul>
<li><a href="../../../../../../distribute/googleplay/index.html">Google Play</a></li>
<li><a href="../../../../../../distribute/essentials/index.html">Essentials</a></li>
<li><a href="../../../../../../distribute/users/index.html">Get Users</a></li>
<li><a href="../../../../../../distribute/engage/index.html">Engage &amp; Retain</a></li>
<li><a href="../../../../../../distribute/monetize/index.html">Monetize</a></li>
<li><a href="../../../../../../distribute/tools/index.html">Tools &amp; Reference</a></li>
<li><a href="../../../../../../distribute/stories/index.html">Developer Stories</a></li>
</ul>
</li>
</ul>
</div><!-- /Expanded quicknav -->
</div><!-- end header-wrap.wrap -->
</div><!-- end header -->
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap" style="position:relative;z-index:1">
<a id="helpoutsLink" class="resource resource-card resource-card-6x2x3 resource-card-6x2 helpouts-card"
href="http://helpouts.google.com/partner/landing/provider/googledevelopers" target="_blank">
<div class="card-bg helpouts-card-bg"></div>
<div class="card-info">
<div class="helpouts-description">
<div class="text">Help developers solve problems<br/>
<span id="helpoutsLinkText" class="link-color" style="display:block;padding-top:5px;text-align:right">Learn more</span>
</div>
</div>
</div>
</a>
<script>
var textA = "LEARN MORE";
var linkA = "http://helpouts.google.com/partner/landing/provider/googledevelopers?utm_source=android_banner1&utm_medium=banner&utm_campaign=android_provider_banner1";
var textB = "SIGN UP NOW";
var linkB = "http://helpouts.google.com/partner/landing/provider/googledevelopers?utm_source=android_banner2&utm_medium=banner&utm_campaign=android_provider_banner2";
if (Math.floor(1/Math.random()) > 1) {
$("a#helpoutsLink").attr('href', linkA);
$("span#helpoutsLinkText").text(textA);
} else {
$("a#helpoutsLink").attr('href', linkB);
$("span#helpoutsLinkText").text(textB);
}
</script>
<ul class="nav-x col-9 develop" style="width:100%">
<li class="training"><a href="../../../../../../training/index.html"
zh-tw-lang="訓練課程"
zh-cn-lang="培训"
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
<li class="guide"><a href="../../../../../../guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="../../../../../../reference/packages.html"
zh-tw-lang="參考資源"
zh-cn-lang="参考"
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="../../../../../../sdk/index.html"
zh-tw-lang="相關工具"
zh-cn-lang="工具"
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
es-lang="Herramientas"
>Tools</a></li>
<li class="google"><a href="../../../../../../google/index.html"
>Google Services</a>
</li>
</ul>
</div>
</div>
<!-- /Sendondary x-nav DEVELOP -->
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
</div> <!--end header-wrapper -->
<div id="sticky-header">
<div>
<a class="logo" href="#top"></a>
<a class="top" href="#top"></a>
<ul class="breadcrumb">
<li class="current">AdapterViewProtocol</li>
</ul>
</div>
</div>
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav">
<div id="api-nav-header">
<div id="api-level-toggle">
<label for="apiLevelCheckbox" class="disabled"
title="Select your target API level to dim unavailable APIs">API level: </label>
<div class="select-wrapper">
<select id="apiLevelSelector">
<!-- option elements added by buildApiLevelSelector() -->
</select>
</div>
</div><!-- end toggle -->
<div id="api-nav-title">Android APIs</div>
</div><!-- end nav header -->
<script>
var SINCE_DATA = [ ];
buildApiLevelSelector();
</script>
<div id="swapper">
<div id="nav-panels">
<div id="resize-packages-nav">
<div id="packages-nav" class="scroll-pane">
<ul>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/package-summary.html">android.support.test</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/package-summary.html">android.support.test.espresso</a></li>
<li class="selected api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/action/package-summary.html">android.support.test.espresso.action</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/assertion/package-summary.html">android.support.test.espresso.assertion</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/base/package-summary.html">android.support.test.espresso.base</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/contrib/package-summary.html">android.support.test.espresso.contrib</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/matcher/package-summary.html">android.support.test.espresso.matcher</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/espresso/util/package-summary.html">android.support.test.espresso.util</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/filters/package-summary.html">android.support.test.filters</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/runner/package-summary.html">android.support.test.runner</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/runner/lifecycle/package-summary.html">android.support.test.runner.lifecycle</a></li>
<li class="api apilevel-">
<a href="../../../../../../reference/android/support/test/uiautomator/package-summary.html">android.support.test.uiautomator</a></li>
</ul><br/>
</div> <!-- end packages-nav -->
</div> <!-- end resize-packages -->
<div id="classes-nav" class="scroll-pane">
<ul>
<li><h2>Interfaces</h2>
<ul>
<li class="selected api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html">AdapterViewProtocol</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.DataFunction.html">AdapterViewProtocol.DataFunction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/CoordinatesProvider.html">CoordinatesProvider</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/PrecisionDescriber.html">PrecisionDescriber</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Swiper.html">Swiper</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Tapper.html">Tapper</a></li>
</ul>
</li>
<li><h2>Classes</h2>
<ul>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterDataLoaderAction.html">AdapterDataLoaderAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.Builder.html">AdapterViewProtocol.AdaptedData.Builder</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocols.html">AdapterViewProtocols</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/CloseKeyboardAction.html">CloseKeyboardAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/EditorAction.html">EditorAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/EspressoKey.html">EspressoKey</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/EspressoKey.Builder.html">EspressoKey.Builder</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/GeneralClickAction.html">GeneralClickAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/GeneralSwipeAction.html">GeneralSwipeAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/KeyEventAction.html">KeyEventAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/OpenLinkAction.html">OpenLinkAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/ReplaceTextAction.html">ReplaceTextAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/ScrollToAction.html">ScrollToAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/TypeTextAction.html">TypeTextAction</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/ViewActions.html">ViewActions</a></li>
</ul>
</li>
<li><h2>Enums</h2>
<ul>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/GeneralLocation.html">GeneralLocation</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Press.html">Press</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Swipe.html">Swipe</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Swiper.Status.html">Swiper.Status</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Tap.html">Tap</a></li>
<li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Tapper.Status.html">Tapper.Status</a></li>
</ul>
</li>
</ul><br/>
</div><!-- end classes -->
</div><!-- end nav-panels -->
<div id="nav-tree" style="display:none" class="scroll-pane">
<div id="tree-list"></div>
</div><!-- end nav-tree -->
</div><!-- end swapper -->
<div id="nav-swap">
<a class="fullscreen">fullscreen</a>
<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>
</div>
</div> <!-- end devdoc-nav -->
</div> <!-- end side-nav -->
<script type="text/javascript">
// init fullscreen based on user pref
var fullscreen = readCookie("fullscreen");
if (fullscreen != 0) {
if (fullscreen == "false") {
toggleFullscreen(false);
} else {
toggleFullscreen(true);
}
}
// init nav version for mobile
if (isMobile) {
swapNav(); // tree view should be used on mobile
$('#nav-swap').hide();
} else {
chooseDefaultNav();
if ($("#nav-tree").is(':visible')) {
init_default_navtree("../../../../../../");
}
}
// scroll the selected page into view
$(document).ready(function() {
scrollIntoView("packages-nav");
scrollIntoView("classes-nav");
});
</script>
<div class="col-12" id="doc-col">
<div id="api-info-block">
<div class="sum-details-links">
</div><!-- end sum-details-links -->
<div class="api-level">
</div>
</div><!-- end api-info-block -->
<!-- ======== START OF CLASS DATA ======== -->
<div id="jd-header">
public
interface
<h1 itemprop="name">AdapterViewProtocol</h1>
</div><!-- end header -->
<div id="naMessage"></div>
<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">
<tr>
<td colspan="1" class="jd-inheritance-class-cell">android.support.test.espresso.action.AdapterViewProtocol</td>
</tr>
</table>
<div class="jd-descr">
<h2>Class Overview</h2>
<p itemprop="articleBody">A sadly necessary layer of indirection to interact with AdapterViews.
<p>
Generally any subclass should respect the contracts and behaviors of its superclass. Otherwise
it becomes impossible to work generically with objects that all claim to share a supertype - you
need special cases to perform the same operation 'owned' by the supertype for each sub-type. The
'is - a' relationship is broken.
</p>
<p>
Android breaks the Liskov substitution principal with ExpandableListView - you can't use
getAdapter(), getItemAtPosition(), and other methods common to AdapterViews on an
ExpandableListView because an ExpandableListView isn't an adapterView - they just share a lot of
code.
</p>
<p>
This interface exists to work around this wart (which sadly is copied in other projects too) and
lets the implementor translate Espresso's needs and manipulations of the AdapterView into calls
that make sense for the given subtype and context.
</p>
<p><i>
If you have to implement this to talk to widgets your own project defines - I'm sorry.
</i><p>
</p>
</div><!-- jd-descr -->
<div class="jd-descr">
<h2>Summary</h2>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
class</nobr></td>
<td class="jd-linkcol"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a></td>
<td class="jd-descrcol" width="100%">
A holder that associates a data object from an AdapterView with a token the
AdapterViewProtocol can use to force that data object to be rendered as a child or deeper
descendant of the adapter view.&nbsp;
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
interface</nobr></td>
<td class="jd-linkcol"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.DataFunction.html">AdapterViewProtocol.DataFunction</a></td>
<td class="jd-descrcol" width="100%">
A custom function that is applied when <code><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html#getData()">getData()</a></code> is executed.&nbsp;
</td>
</tr>
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
Iterable&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#getDataInAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>)">getDataInAdapterView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView)</nobr>
<div class="jd-descrdiv">
Returns all data this AdapterViewProtocol can find within the given AdapterView.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
Optional&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#getDataRenderedByView(android.widget.AdapterView<? extends android.widget.Adapter>, android.view.View)">getDataRenderedByView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, View descendantView)</nobr>
<div class="jd-descrdiv">
Returns the data object this particular view is rendering if possible.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#isDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)">isDataRenderedWithinAdapterView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> adaptedData)</nobr>
<div class="jd-descrdiv">
Indicates whether or not there now exists a descendant view within adapterView that
is rendering this data.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#makeDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)">makeDataRenderedWithinAdapterView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> data)</nobr>
<div class="jd-descrdiv">
Requests that a particular piece of data held in this AdapterView is actually rendered by it.
</div>
</td></tr>
</table>
</div><!-- jd-descr (summary) -->
<!-- Details -->
<!-- XML Attributes -->
<!-- Enum Values -->
<!-- Constants -->
<!-- Fields -->
<!-- Public ctors -->
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
<h2>Public Methods</h2>
<A NAME="getDataInAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
Iterable&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;
</span>
<span class="sympad">getDataInAdapterView</span>
<span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Returns all data this AdapterViewProtocol can find within the given AdapterView.
<p>
Any AdaptedData returned by this method can be passed to makeDataRenderedWithinView and the
implementation should make the AdapterView bring that data item onto the screen.
</p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>adapterView</td>
<td>the AdapterView we want to interrogate the contents of.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>an <code><a href="../../../../../../reference/java/lang/Iterable.html">Iterable</a></code> of AdaptedDatas representing all data the implementation sees in
this view</li></ul>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if the implementation doesn't know how to manipulate the given
adapter view.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="getDataRenderedByView(android.widget.AdapterView<? extends android.widget.Adapter>, android.view.View)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
Optional&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;
</span>
<span class="sympad">getDataRenderedByView</span>
<span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, View descendantView)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Returns the data object this particular view is rendering if possible.
<p>
Implementations are expected to create a relationship between the data in the AdapterView and
the descendant views of the AdapterView that obeys the following conditions:
</p>
<ul>
<li>For each descendant view there exists either 0 or 1 data objects it is rendering.</li>
<li>For each data object the AdapterView there exists either 0 or 1 descendant views which
claim to be rendering it.</li>
</ul>
<p> For example - if a PersonObject is rendered into: </p>
<code>
LinearLayout
ImageView picture
TextView firstName
TextView lastName
</code>
<p>
It would be expected that getDataRenderedByView(adapter, LinearLayout) would return the
PersonObject. If it were called instead with the TextView or ImageView it would return
Object.absent().
</p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>adapterView</td>
<td>the adapterview hosting the data.</td>
</tr>
<tr>
<th>descendantView</td>
<td>a view which is a child, grand-child, or deeper descendant of adapterView</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>an optional data object the descendant view is rendering.</li></ul>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if this protocol cannot interrogate this class of adapterView
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="isDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
boolean
</span>
<span class="sympad">isDataRenderedWithinAdapterView</span>
<span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> adaptedData)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Indicates whether or not there now exists a descendant view within adapterView that
is rendering this data.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>adapterView</td>
<td>the AdapterView hosting this data.</td>
</tr>
<tr>
<th>adaptedData</td>
<td>the data we are checking the display state for.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>true if the data is rendered by a view in the adapterView, false otherwise.
</li></ul>
</div>
</div>
</div>
<A NAME="makeDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
void
</span>
<span class="sympad">makeDataRenderedWithinAdapterView</span>
<span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> data)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Requests that a particular piece of data held in this AdapterView is actually rendered by it.
<p>
After calling this method it expected that there will exist some descendant view of adapterView
for which calling getDataRenderedByView(adapterView, descView).get() == data.data is true.
<p>
</p>
Note: this need not happen immediately. EG: an implementor handling ListView may call
listView.smoothScrollToPosition(data.opaqueToken) - which kicks off an animated scroll over
the list to the given position. The animation may be in progress after this call returns. The
only guarantee is that eventually - with no further interaction necessary - this data item
will be rendered as a child or deeper descendant of this AdapterView.
</p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>adapterView</td>
<td>the adapterView hosting the data.</td>
</tr>
<tr>
<th>data</td>
<td>an AdaptedData instance retrieved by a prior call to getDataInAdapterView</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if this protocol cannot manipulate adapterView or if data is
not owned by this AdapterViewProtocol.
</td>
</tr>
</table>
</div>
</div>
</div>
<!-- ========= METHOD DETAIL ======== -->
<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
<div id="copyright">
Except as noted, this content is licensed under <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="../../../../../../license.html">
Content License</a>.
</div>
<div id="build_info">
Android &nbsp;r &mdash;
<script src="../../../../../../timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
</div>
<div id="footerlinks">
<p>
<a href="../../../../../../about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
<a href="../../../../../../legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
<a href="../../../../../../support.html">Support</a>
</p>
</div>
</div> <!-- end footer -->
</div> <!-- jd-content -->
</div><!-- end doc-content -->
</div> <!-- end body-content -->
</body>
</html>