重点内容
为了使用ActionBar实现Tab的导航,按照如下的方法步骤。
1.调用ActionBar的setnavigationMode();方式设置使用Tab的导航模式。
2.调用ActionBar的addTab()方法添加多个Tab标签,并为每个Tab标签添加事件的监听器
“`
package com.example.actionbar_fragment;
import android.os.Bundle;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.view.Menu;
public class MainActivity extends Activity implements ActionBar.TabListener {
private static final String SELECTED_ITEM = "selected_item";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionbar.addTab(actionbar.newTab().setText("第一页").setTabListener(this));
actionbar.addTab(actionbar.newTab().setText("第二页").setTabListener(this));
actionbar.addTab(actionbar.newTab().setText("第三页").setTabListener(this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
//重要的就是重写这个方法
@Override
public void onTabSelected(Tab tab, FragmentTransaction fragmentTransaction) {
// TODO Auto-generated method stub
Fragment fragmrnt = new DummyFragmrnt();
Bundle bd = new Bundle();
bd.putInt(DummyFragmrnt.ARG_SECTION_NUMBER, tab.getPosition()+1);
//FragmentTransaction 对fragment进行移动,添加,替换的操作
fragmrnt.setArguments(bd);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.container, fragmrnt);
ft.commit();
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
“`//简单的Fragment
public class DummyFragmrnt extends Fragment{
public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textview = new TextView(getActivity());
textview.setGravity(Gravity.START);
Bundle args = getArguments();
textview.setText(args.getInt(ARG_SECTION_NUMBER)+"");
textview.setTextSize(30);
return textview;
}
}