下面列出了怎么用android.database.DataSetObserver的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Unregister an observer that has previously been registered with this
* cursor via {@link #registerContentObserver}.
*
* @param observer
* the object to unregister.
* @see #registerDataSetObserver(DataSetObserver)
*/
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
try {
if (mCursor != null) {
mCursor.unregisterDataSetObserver(observer);
}
} catch (Exception e) {
PaLog.d("Cursor exception: " + e);
if (mCursor != null) {
try {
mCursor.close();
} catch (Exception exception) {
PaLog.d("Cursor close exception: " + e);
}
mCursor = null;
}
}
}
/**
* Set the adapter to the listview
* Automativally hide the progressbar
* Set the refresh to false
* If adapter is empty, then the emptyview is shown
*
* @param adapter
*/
public void setAdapter(ListAdapter adapter) {
mProgress.setVisibility(View.GONE);
if (mEmpty != null && mEmptyId != 0)
mList.setEmptyView(mEmpty);
mList.setVisibility(View.VISIBLE);
mPtrLayout.setRefreshing(false);
adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
mProgress.setVisibility(View.GONE);
isLoadingMore = false;
mPtrLayout.setRefreshing(false);
if (mList.getAdapter().getCount() == 0 && mEmptyId != 0) {
mEmpty.setVisibility(View.VISIBLE);
} else if (mEmptyId != 0) {
mEmpty.setVisibility(View.GONE);
}
}
});
if ((adapter == null || adapter.getCount() == 0) && mEmptyId != 0) {
mEmpty.setVisibility(View.VISIBLE);
}
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
mDataSetObservable.unregisterObserver(observer);
if (mAdapter != null) {
mAdapter.unregisterDataSetObserver(observer);
}
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer == null) {
/*
* http://stackoverflow.com/questions/7290841/java-lang-illegalargumentexception-the-observer-is-null
* ListView / GridView #onDetachedFromWindow 方法被重复执行时,
* SDK在 14-17 之间的系统此处 observer 为 null,若不拦截将产生 IllegalArgumentException,
* SDK 18 修复了此问题
*/
return;
}
super.unregisterDataSetObserver(observer);
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
if (datasetObservers == null) {
datasetObservers = new LinkedList<DataSetObserver>();
}
datasetObservers.add(observer);
}
/**
* Notifies observers about data changing
*/
protected void notifyDataChangedEvent() {
if (datasetObservers != null) {
for (DataSetObserver observer : datasetObservers) {
observer.onChanged();
}
}
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
mDataSetObservable.registerObserver(observer);
if (mAdapter != null) {
mAdapter.registerDataSetObserver(observer);
}
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
mDataSetObservable.unregisterObserver(observer);
if (mAdapter != null) {
mAdapter.unregisterDataSetObserver(observer);
}
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
if (datasetObservers == null) {
datasetObservers = new LinkedList<DataSetObserver>();
}
datasetObservers.add(observer);
}
/**
* Notifies observers about data changing
*/
protected void notifyDataChangedEvent() {
if (datasetObservers != null) {
for (DataSetObserver observer : datasetObservers) {
observer.onChanged();
}
}
}
/**
* Notifies observers about invalidating data
*/
protected void notifyDataInvalidatedEvent() {
if (datasetObservers != null) {
for (DataSetObserver observer : datasetObservers) {
observer.onInvalidated();
}
}
}
public void unregisterDataSetObserver(DataSetObserver datasetobserver)
{
if (a != null)
{
a.remove(datasetobserver);
}
}
public void setViewPager(ViewPager viewPager) {
this.viewPager = viewPager;
viewPager.addOnPageChangeListener(this);
setPageCount(viewPager.getAdapter().getCount());
viewPager.getAdapter().registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
setPageCount(Indicator.this.viewPager.getAdapter().getCount());
}
});
setCurrentPageImmediate();
}
public AdapterWrapper(ListAdapter adapter) {
super();
mAdapter = adapter;
mAdapter.registerDataSetObserver(new DataSetObserver() {
public void onChanged() {
notifyDataSetChanged();
}
public void onInvalidated() {
notifyDataSetInvalidated();
}
});
}
public void testUnregisterDataSetObserver() {
DataSetObserver mock = mock(DataSetObserver.class);
mBaseAdapterDecorator.registerDataSetObserver(mock);
mBaseAdapterDecorator.unregisterDataSetObserver(mock);
verify(mBaseAdapter).unregisterDataSetObserver(mock);
}
@Override
public void setViewPagerObserver(DataSetObserver observer) {
super.setViewPagerObserver(observer);
if (observer == null) {
wrapperViewPager(mViewPager, this);
}
}
protected void notifyDataChangedEvent()
{
if (a != null)
{
for (Iterator iterator = a.iterator(); iterator.hasNext(); ((DataSetObserver)iterator.next()).onChanged()) { }
}
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
mDataSetObservable.registerObserver(observer);
if (mAdapter != null) {
mAdapter.registerDataSetObserver(observer);
}
}
public void setAdapter(BaseAdapter adapter) {
mAdapter = adapter;
mAdapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
notifyDataSetChanged();
}
@Override
public void onInvalidated() {
notifyDataSetInvalidated();
}
});
}
private synchronized void internalDataSetChanged() {
visibleListCache = null;
unmodifiableVisibleList = null;
if (observers != null)
for (final DataSetObserver observer : observers) {
observer.onChanged();
}
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
((CjdnsApplication) getActivity().getApplication()).inject(this);
Bundle args = getArguments();
final int peerId = args.getInt(FRAGMENT_BUNDLE_KEY_PEER_ID);
final Observable<Node.Peer> peerStream = mPeersProducer.createStream()
.mergeWith(mPeersProducer.updateStream())
.filter(new Func1<Node.Peer, Boolean>() {
@Override
public Boolean call(Node.Peer peer) {
return peer.id == peerId;
}
});
mAdapter = new ConnectionAdapter(getActivity(), mBus,
AppObservable.bindFragment(this, mSettingsProducer.themeStream()),
AppObservable.bindFragment(this, peerStream));
mAdapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
if (mAdapter.hasData() && mAdapter.getCount() <= 0) {
dismiss();
}
}
});
return new MaterialDialog.Builder(getActivity())
.title(R.string.connections_list_title)
.adapter(mAdapter, null)
.listSelector(R.drawable.md_transparent)
.build();
}
/**
* Notifies observers about invalidating data
*/
protected void notifyDataInvalidatedEvent() {
if (datasetObservers != null) {
for (DataSetObserver observer : datasetObservers) {
observer.onInvalidated();
}
}
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
mAdapter.registerDataSetObserver(observer);
}
/**
* Create a new instance.
*
* @param context The application environment.
* @param attrs A collection of attributes.
* @param defStyle The default style to apply to this view.
*/
public ActivityChooserView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mContext = context;
TypedArray attributesArray = context.obtainStyledAttributes(attrs,
R.styleable.SherlockActivityChooserView, defStyle, 0);
mInitialActivityCount = attributesArray.getInt(
R.styleable.SherlockActivityChooserView_initialActivityCount,
ActivityChooserViewAdapter.MAX_ACTIVITY_COUNT_DEFAULT);
Drawable expandActivityOverflowButtonDrawable = attributesArray.getDrawable(
R.styleable.SherlockActivityChooserView_expandActivityOverflowButtonDrawable);
attributesArray.recycle();
LayoutInflater inflater = LayoutInflater.from(mContext);
inflater.inflate(R.layout.abs__activity_chooser_view, this, true);
mCallbacks = new Callbacks();
mActivityChooserContent = (IcsLinearLayout) findViewById(R.id.abs__activity_chooser_view_content);
mActivityChooserContentBackground = mActivityChooserContent.getBackground();
mDefaultActivityButton = (FrameLayout) findViewById(R.id.abs__default_activity_button);
mDefaultActivityButton.setOnClickListener(mCallbacks);
mDefaultActivityButton.setOnLongClickListener(mCallbacks);
mDefaultActivityButtonImage = (ImageView) mDefaultActivityButton.findViewById(R.id.abs__image);
mExpandActivityOverflowButton = (FrameLayout) findViewById(R.id.abs__expand_activities_button);
mExpandActivityOverflowButton.setOnClickListener(mCallbacks);
mExpandActivityOverflowButtonImage =
(ImageView) mExpandActivityOverflowButton.findViewById(R.id.abs__image);
mExpandActivityOverflowButtonImage.setImageDrawable(expandActivityOverflowButtonDrawable);
mAdapter = new ActivityChooserViewAdapter();
mAdapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
updateAppearance();
}
});
Resources resources = context.getResources();
mListPopupMaxWidth = Math.max(resources.getDisplayMetrics().widthPixels / 2,
resources.getDimensionPixelSize(R.dimen.abs__config_prefDialogWidth));
}
@Test
public void testUnregisterDataSetObserver() {
delegate = new TimelineDelegate<>(mockTimeline, mockObservable, null);
delegate.unregisterDataSetObserver(mock(DataSetObserver.class));
verify(mockObservable, times(1)).unregisterObserver(any(DataSetObserver.class));
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
mWrappedAdapter.unregisterDataSetObserver(observer);
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
adapter.unregisterDataSetObserver(observer);
}
@Override
public void registerDataSetObserver(final DataSetObserver observer) {
mDecoratedBaseAdapter.registerDataSetObserver(observer);
}
@Override
public void process() {
for (DataSetObserver observer : observers) {
observer.onInvalidated();
}
}
public void registerDataSetObserver(DataSetObserver observer) {
mAdapter.registerDataSetObserver(observer);
}