用Gallery代替TabHost

用Gallery代替TabHost
android SDK中提供了TabHost使用起来很方便, 但是当tab比较多的时候,就会挤在一起,而不能横向的滚动比较麻烦.

      于是我尝试的制作了一个简单的使用Gallery来代替TabHost的例子, 确实够简单的,自娱自乐.....仅供参考

 

     

 

      使用BroadcastReceiver来切换不同的Tab

 

     public   class  ChangeTabBroadcastReceiver  extends  BroadcastReceiver {
        @Override
        
public   void  onReceive(Context context, Intent intent) {
            
int  index  =  intent.getExtras().getInt(CURRENT_TAB_INDEX);
            Log.i(TAG, 
" onReceive index =  "   +  index);
            
//  setCurrentTab(index);
            topBar.setSelection(index);
            startGroupActivity(titleList.get(index).toString(),
                    (Intent) intentList.get(index));
        }
    }

 

     没有详细研究SDK中的TabHost实现机制, 使用起来还是有些不方便的地方


public   class  GalleryTabActivityDemo  extends  GalleryTabactivity {
    @Override
    
public   void  onCreate(Bundle savedInstanceState) {
        
super .onCreate(savedInstanceState);
        setDelegate(
new  SliderBarActivityDelegateImpl());
        
for  ( int  i  =   0 ; i  <   14 ; i ++ ) {
            Intent intent;
            
if  (i  %   2   ==   0 )
                intent 
=   new  Intent( this , DemoActivity1. class );
            
else
                intent 
=   new  Intent( this , DemoActivity2. class );

            
this .addTab( " title "   +  i, android.R.drawable.star_on, intent);

        }
// 必须在addTab后调用commit, 有点麻烦, 将来会找更好的办法
         super .setup();
    }

// 可自定义切换tab时触发的操作
     private   class  SliderBarActivityDelegateImpl  extends
            SliderBarActivityDelegate {
        
protected   void  onTabChanged( int  tabIndex) {
            Log.d(
" onTabChanged " ""   +  tabIndex);
        }
    }
}

最近工作比较忙,没太多时间学习android,将来会慢慢改善, 先凑合用, 抛块砖先, 各位有玉的使劲砸, 金条也行

 下载

你可能感兴趣的:(用Gallery代替TabHost)