下面列出了android.view.MenuItem.OnMenuItemClickListener#android.widget.Adapter 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private boolean isFirstItemVisible() {
final Adapter adapter = mRefreshableView.getAdapter();
if(null == adapter || adapter.isEmpty()) {
return true;
} else {
/**
* This check should really just be: mRefreshableView.getFirstVisiblePosition() == 0, but PtRListView internally use a
* HeaderView which messes the positions up. For now we'll just add one to account for it and rely on the inner
* condition which checks getTop().
*/
if(mRefreshableView.getFirstVisiblePosition() <= 1) {
final View firstVisibleChild = mRefreshableView.getChildAt(0);
if(firstVisibleChild != null) {
return firstVisibleChild.getTop() >= mRefreshableView.getTop();
}
}
}
return false;
}
public void setAdapter(Adapter adapter) {
if (mAdapter != null) {
mAdapter.unregisterDataSetObserver(mDataSetObserver);
removeAllViews();
mCurItem = 0;
scrollTo(0, 0);
}
mAdapter = adapter;
if (mAdapter != null) {
mAdapter.registerDataSetObserver(mDataSetObserver);
for (int i = 0; i < mAdapter.getCount(); i++) {
final View child = mAdapter.getView(i, null, this);
addView(child);
}
}
}
@Override
public EspressoOptional<AdaptedData> getDataRenderedByView(
AdapterView<? extends Adapter> adapterView, View descendantView) {
if (adapterView == descendantView.getParent()) {
int position = adapterView.getPositionForView(descendantView);
if (position != AdapterView.INVALID_POSITION) {
return EspressoOptional.of(
new AdaptedData.Builder()
.withDataFunction(
new StandardDataFunction(adapterView.getItemAtPosition(position), position))
.withOpaqueToken(Integer.valueOf(position))
.build());
}
}
return EspressoOptional.absent();
}
private static Matcher<View> withAdaptedData(final Matcher<Object> dataMatcher) {
return new TypeSafeMatcher<View>() {
@Override
public void describeTo(Description description) {
description.appendText("with class name: ");
dataMatcher.describeTo(description);
}
@Override
public boolean matchesSafely(View view) {
if (!(view instanceof AdapterView)) {
return false;
}
@SuppressWarnings("rawtypes")
Adapter adapter = ((AdapterView) view).getAdapter();
for (int i = 0; i < adapter.getCount(); i++) {
if (dataMatcher.matches(adapter.getItem(i))) {
return true;
}
}
return false;
}
};
}
@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Adapter adapter = parent.getAdapter();
message = (DirectMessage)adapter.getItem(position);
if (message == null
|| (message instanceof LocalDirectMessage
&& ((LocalDirectMessage)message).isDivider())) {
return;
}
if (adapter instanceof HeaderViewListAdapter) {
adapter = ((HeaderViewListAdapter)adapter).getWrappedAdapter();
}
CacheAdapter<DirectMessage> cacheAdapter = (CacheAdapter<DirectMessage>)adapter;
Dialog dialog = onCreateDialog(cacheAdapter, position);
if (dialog != null) {
dialog.show();
}
}
public void setAdapter(Adapter adapter) {
if (mAdapter != null) {
mAdapter.unregisterDataSetObserver(mDataSetObserver);
removeAllViews();
mCurItem = 0;
scrollTo(0, 0);
}
mAdapter = adapter;
if (mAdapter != null) {
mAdapter.registerDataSetObserver(mDataSetObserver);
for (int i = 0; i < mAdapter.getCount(); i++) {
final View child = mAdapter.getView(i, null, this);
addView(child);
}
}
}
public void setSelectedItem(int position) {
Adapter adapter = mSpinnerListView.getAdapter();
if (adapter instanceof ISpinnerSelectedView) {
View selectedView = ((ISpinnerSelectedView) adapter).getSelectedView(position);
mCurrSelectedView = new SelectedView(selectedView, position, selectedView.getId());
mSpinnerListView.setSelection(position);
} else {
TextView textView = new TextView(mContext);
textView.setText(mRevealEmptyText);
mCurrSelectedView = new SelectedView(textView, -1, 0);
mRevealItem.addView(textView);
}
if (mCurrSelectedView == null) {
if (mOnItemSelected != null)
mOnItemSelected.onNothingSelected();
} else if (mCurrSelectedView != null) {
mRevealItem.removeAllViews();
mSpinnerListView.removeViewInLayout(mCurrSelectedView.getView());
mRevealItem.addView(mCurrSelectedView.getView());
((BaseAdapter) mSpinnerListView.getAdapter()).notifyDataSetChanged();
if (mOnItemSelected != null)
mOnItemSelected.onItemSelected(mCurrSelectedView.getView(), mCurrSelectedView.getPosition(), mCurrSelectedView.getId());
}
hideEdit();
}
public int getItemViewType(int position) {
int type = 1;
for(Object section : this.sections.keySet()) {
Adapter adapter = sections.get(section);
int size = adapter.getCount() + 1;
// check if position inside this section
if(position == 0) return TYPE_SECTION_HEADER;
if(position < size) return type + adapter.getItemViewType(position - 1);
// otherwise jump into next section
position -= size;
type += adapter.getViewTypeCount();
}
return -1;
}
public Adapter getAdapter(int position)
{
for (final Adapter adapter : sectionMap.values())
{
final int size = adapter.getCount() + (hasSectionHeader ? 1 : 0);
if (position == 0 && hasSectionHeader)
return null;
if (position < size)
return adapter;
position -= size;
}
return null;
}
@Override
public int getItemViewType(int position)
{
int type = 1;
for(String section : this.sections.keySet()) {
Adapter adapter = sections.get(section);
int size = adapter.getCount() + 1;
// check if position inside this section
if(position == 0)
return TYPE_SECTION_HEADER;
if(position < size)
return type + adapter.getItemViewType(position - 1);
// otherwise jump into next section
position -= size;
type += adapter.getViewTypeCount();
}
return -1;
}
/**
* if working in {@link android.widget.AdapterView}, we should response
* {@link android.widget.Adapter} isEnable(int position).
*
* @return true when item is enabled, else disabled.
*/
private boolean isEnabledInAdapterView() {
AdapterView adapterView = getAdapterView();
boolean enable = true;
if (adapterView != null) {
Adapter adapter = adapterView.getAdapter();
if (adapter != null) {
int p = adapterView.getPositionForView(SwipeLayout.this);
if (adapter instanceof BaseAdapter) {
enable = ((BaseAdapter) adapter).isEnabled(p);
} else if (adapter instanceof ListAdapter) {
enable = ((ListAdapter) adapter).isEnabled(p);
}
}
}
return enable;
}
private void updateNote(){
Adapter a = lvItemList.getAdapter();
JSONArray jsonArray = new JSONArray();
try {
CheckListItem temp;
for (int i = 0; i < itemNamesList.size(); i++) {
temp = (CheckListItem) a.getItem(i);
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", temp.getName());
jsonObject.put("checked", temp.isChecked());
jsonArray.put(jsonObject);
}
fillNameIfEmpty();
DbAccess.updateNote(getBaseContext(), id, etName.getText().toString(), jsonArray.toString(), currentCat);
Toast.makeText(getApplicationContext(), R.string.toast_updated, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Adapter adapter = parent.getAdapter();
message = (DirectMessage)adapter.getItem(position);
if (message == null
|| (message instanceof LocalDirectMessage
&& ((LocalDirectMessage)message).isDivider())) {
return;
}
if (adapter instanceof HeaderViewListAdapter) {
adapter = ((HeaderViewListAdapter)adapter).getWrappedAdapter();
}
CacheAdapter<DirectMessage> cacheAdapter = (CacheAdapter<DirectMessage>)adapter;
Dialog dialog = onCreateDialog(cacheAdapter, position);
if (dialog != null) {
dialog.show();
}
}
@Override
protected void bindEvents()
{
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(Adapter adapter, View view, int position, long id)
{
Intent intent = new Intent(getContext(), ImageGridActivity.class);
intent.putExtra(RockyIntent.EXTRA_ALBUM, (AlbumInfo) adapter.getItem(position));
startActivity(intent);
}
});
warning_close.setOnClickListener(this);
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
int sectionnum = 0;
for(String section : this.sections.keySet()) {
Adapter adapter = sections.get(section);
int size = adapter.getCount() + 1;
// check if position inside this section
if(position == 0)
return headers.getView(sectionnum, convertView, parent);
if(position < size)
return adapter.getView(position - 1, convertView, parent);
// otherwise jump into next section
position -= size;
sectionnum++;
}
return null;
}
private void saveNote(){
Adapter a = lvItemList.getAdapter();
JSONArray jsonArray = new JSONArray();
try {
CheckListItem temp;
for (int i = 0; i < itemNamesList.size(); i++) {
temp = (CheckListItem) a.getItem(i);
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", temp.getName());
jsonObject.put("checked", temp.isChecked());
jsonArray.put(jsonObject);
}
fillNameIfEmpty();
id = DbAccess.addNote(getBaseContext(), etName.getText().toString(), jsonArray.toString(), DbContract.NoteEntry.TYPE_CHECKLIST, currentCat);
Toast.makeText(getApplicationContext(), R.string.toast_saved, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if ("pkgS".equals(key)) {
final GridView slf_apps_gridView = findViewById(R.id.slf_apps_gridView);
if (slf_apps_gridView != null) {
Adapter adapter = slf_apps_gridView.getAdapter();
if (adapter instanceof ReplaceableSimpleAdapter) {
final ArrayList<Map<String, Object>> folderItems = new ArrayList<>();
generateFolderItems(folderItems, sharedPreferences);
((ReplaceableSimpleAdapter) adapter).replaceAllInFormerArrayList(folderItems);
}
}
} else if ("folderName".equals(key)) {
final TextView slf_folderName_textView = findViewById(R.id.slf_folderName_textView);
if (slf_folderName_textView != null) {
slf_folderName_textView.setText(sharedPreferences.getString("folderName", getString(R.string.folder)));
}
}
}
public static BaseListAdapter<?> getBaseListAdapter(Adapter adapter) {
if (adapter == null) {
return null;
}
BaseListAdapter<?> baseListAdapter = null;
if (adapter instanceof BaseListAdapter<?>) {
baseListAdapter = (BaseListAdapter<?>)adapter;
} else if (adapter instanceof HeaderViewListAdapter) {
HeaderViewListAdapter headerViewAdapter = (HeaderViewListAdapter)adapter;
if (headerViewAdapter.getWrappedAdapter() instanceof BaseListAdapter<?>) {
baseListAdapter = (BaseListAdapter<?>)headerViewAdapter.getWrappedAdapter();
}
}
return baseListAdapter;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Adapter adapter = parent.getAdapter();
Authorization auth = context.getAuth();
if (auth == null) {
Logger.error("auth can't be null");
return;
}
ConfigApp configApp = (ConfigApp)adapter.getItem(position);
if (configApp.getAppId() == -2l) {
Intent intent = new Intent();
intent.setClass(context, AddConfigAppActivity.class);
intent.putExtra("spNo", auth.getServiceProvider().getSpNo());
context.startActivityForResult(intent, Constants.REQUEST_CODE_CONFIG_APP_ADD);
return;
}
OAuthConfig oauthConfig = auth.getoAuthConfig();
oauthConfig.setConsumerKey(configApp.getAppKey());
oauthConfig.setConsumerSecret(configApp.getAppSecret());
oauthConfig.setCallbackUrl(configApp.getCallbackUrl());
Logger.debug("callback:{}", oauthConfig.getCallbackUrl());
}
@Override
public int getItemViewType(int position)
{
int type = 1;
for (final Object section : sectionMap.keySet())
{
final Adapter adapter = sectionMap.get(section);
final int size = adapter.getCount() + (hasSectionHeader ? 1 : 0);
if (position == 0 && hasSectionHeader)
return TYPE_SECTION_HEADER;
if (position < size)
return type + adapter.getItemViewType(position - 1);
position -= size;
type += adapter.getViewTypeCount();
}
return -1;
}
private void setupAdapterView(FoldableItemLayout layout, int position) {
// Binding layout to new data
int type = adapter.getItemViewType(position);
View recycledView = null;
if (type != Adapter.IGNORE_ITEM_VIEW_TYPE) {
Queue<View> cache = recycledViews.get(type);
recycledView = cache == null ? null : cache.poll();
}
View view = adapter.getView(position, recycledView, layout.getBaseLayout());
if (type != Adapter.IGNORE_ITEM_VIEW_TYPE) {
viewsTypesMap.put(view, type);
}
layout.getBaseLayout().addView(view, PARAMS);
}
public void setAdapter(Adapter adapter, int initialPosition) {
if (mAdapter != null) {
mAdapter.unregisterDataSetObserver(mDataSetObserver);
}
mAdapter = adapter;
if (mAdapter != null) {
mDataSetObserver = new AdapterDataSetObserver();
mAdapter.registerDataSetObserver(mDataSetObserver);
}
if (mAdapter == null || mAdapter.getCount() == 0)
return;
setSelection(initialPosition);
}
/**
* 判断第一个child是否完全显示出来
*
* @return true完全显示出来,否则false
*/
private boolean isFirstItemVisible() {
final Adapter adapter = mfakeListView.getAdapter();
if (null == adapter || adapter.isEmpty()) {
return true;
}
int mostTop = (mfakeListView.getChildCount() > 0) ? mfakeListView
.getChildAt(0).getTop() : mfakeListView.getTop();
if (mostTop >= 0) {
return true;
}
return false;
}
private boolean c()
{
Adapter adapter = ((AbsListView)l).getAdapter();
if (adapter == null || adapter.isEmpty())
{
Log.d("PullToRefresh", "isFirstItemVisible. Empty View.");
return true;
}
if (((AbsListView)l).getFirstVisiblePosition() <= 1)
{
View view = ((AbsListView)l).getChildAt(0);
if (view != null)
{
return view.getTop() >= ((AbsListView)l).getTop();
}
}
return false;
}
public static CacheAdapter<?> getCacheAdapter(Adapter adapter) {
if (adapter == null) {
return null;
}
CacheAdapter<?> cacheAdapter = null;
if (adapter instanceof CacheAdapter<?>) {
cacheAdapter = (CacheAdapter<?>)adapter;
} else if (adapter instanceof HeaderViewListAdapter) {
HeaderViewListAdapter headerViewAdapter = (HeaderViewListAdapter)adapter;
if (headerViewAdapter.getWrappedAdapter() instanceof CacheAdapter<?>) {
cacheAdapter = (CacheAdapter<?>)headerViewAdapter.getWrappedAdapter();
}
}
return cacheAdapter;
}
public void setAdapter(Adapter adapter, int initialPosition) {
if (this.adapter != null) {
this.adapter.unregisterDataSetObserver(adapterDataObserver);
}
Assert.assertNotNull("adapter should not be null", adapter);
this.adapter = adapter;
adapterDataCount = adapter.getCount();
adapterDataObserver = new MyDataSetObserver();
this.adapter.registerDataSetObserver(adapterDataObserver);
if (adapterDataCount > 0) {
setSelection(initialPosition);
}
}
protected int getPageCount()
{
Adapter adapter = getAdapter();
if (null != adapter)
return adapter.getCount();
return 0;
}
/**
* notifiy adapter to update
*/
protected void updateAdapter() {
Adapter adapter = mListContainer.getAdapter();
if (adapter instanceof HeaderFooterListAdapter) {
((HeaderFooterListAdapter) adapter).getWrappedAdapter().notifyDataSetChanged();
return;
}
if (adapter instanceof BaseAdapter) {
((BaseAdapter) adapter).notifyDataSetChanged();
}
}
public Object getSelectedItem() {
Adapter localAdapter = getAdapter();
int i = getSelectedItemPosition();
if ((localAdapter != null) && (localAdapter.getCount() > 0) && (i >= 0))
return localAdapter.getItem(i);
return null;
}
public int getCount() {
// total together all sections, plus one for each section header
int total = 0;
for (Adapter adapter : this.sections.values())
total += adapter.getCount() + 1;
return total;
}