If you think the Android project DashClockWidget listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright 2013 Google Inc.//fromwww.java2s.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/package com.google.android.apps.dashclock.ui;
import net.nurik.roman.dashclock.R;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* A helper class for creating swipeable tabs without the use of {@link android.app.ActionBar} APIs.
*/publicclass SimplePagedTabsHelper {
private Context mContext;
private ViewGroup mTabContainer;
private ViewPager mPager;
private Map<View, Integer> mTabPositions = new HashMap<View, Integer>();
private List<Integer> mTabContentIds = new ArrayList<Integer>();
public SimplePagedTabsHelper(Context context, ViewGroup tabContainer, ViewPager pager) {
mContext = context;
mTabContainer = tabContainer;
mPager = pager;
pager.setAdapter(mAdapter);
pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
publicvoid onPageSelected(int position) {
for (int i = 0; i < mTabContainer.getChildCount(); i++) {
mTabContainer.getChildAt(i).setSelected(i == position);
}
}
});
}
publicvoid addTab(int labelResId, int contentViewId) {
addTab(mContext.getString(labelResId), contentViewId);
}
publicvoid addTab(CharSequence label, int contentViewId) {
View tabView = LayoutInflater.from(mContext).inflate(R.layout.tab, mTabContainer, false);
((TextView) tabView.findViewById(R.id.tab)).setText(label);
tabView.setOnClickListener(mTabClickListener);
int position = mTabContentIds.size();
tabView.setSelected(mPager.getCurrentItem() == position);
mTabPositions.put(tabView, position);
mTabContainer.addView(tabView);
mTabContentIds.add(contentViewId);
mAdapter.notifyDataSetChanged();
}
private View.OnClickListener mTabClickListener = new View.OnClickListener() {
@Override
publicvoid onClick(View view) {
mPager.setCurrentItem(mTabPositions.get(view));
}
};
private PagerAdapter mAdapter = new PagerAdapter() {
@Override
publicint getCount() {
return mTabContentIds.size();
}
@Override
publicboolean isViewFromObject(View view, Object o) {
return view == o;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
return mPager.findViewById(mTabContentIds.get(position));
}
@Override
publicvoid destroyItem(ViewGroup container, int position, Object object) {
// No-op
}
};
}