[Android]_ch11.4_Tab導覽列元件2
package com.derek.ch28_tab;
import android.app.ActionBar;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.ActionBar.Tab;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab Tab1=actionBar.newTab();
Tab1.setText("郵件");
Tab1.setIcon(R.drawable.icon1);
Tab1.setTabListener(new MyTabListener<Tab1>(MainActivity.this,"Tab1",Tab1.class));
Tab Tab2=actionBar.newTab();
Tab2.setText("購物");
Tab2.setIcon(R.drawable.icon2);
Tab2.setTabListener(new MyTabListener<Tab2>(MainActivity.this,"Tab2",Tab2.class));
Tab Tab3=actionBar.newTab();
Tab3.setText("主頁");
Tab3.setIcon(R.drawable.icon3);
Tab3.setTabListener(new MyTabListener<Tab3>(MainActivity.this,"Tab3",Tab3.class));
Tab Tab4=actionBar.newTab();
Tab4.setText("Q&A");
Tab4.setIcon(R.drawable.icon4);
Tab4.setTabListener(new MyTabListener<Tab4>(MainActivity.this,"Tab4",Tab4.class));
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
actionBar.addTab(Tab3);
actionBar.addTab(Tab4);
}
public class MyTabListener<T extends Fragment> implements TabListener{
Fragment fragment;
String name;
Class<T> clz;
Context context;
public MyTabListener(Context context,String name, Class<T> clz){
this.context=context;
this.name=name;
this.clz=clz;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(fragment==null){
fragment=Fragment.instantiate(context, clz.getName());
ft.add(android.R.id.content, fragment, name);
}else{
ft.attach(fragment);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if(fragment!=null){
ft.detach(fragment);
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Toast.makeText(MainActivity.this, "釋放回收...", Toast.LENGTH_SHORT).show();
}
}
}
沒有留言:
張貼留言