使用ActionBar实现Tab导航

来源:互联网 发布:网络赌托算什么犯罪 编辑:程序博客网 时间:2024/05/30 04:24

重点内容
为了使用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";@Overrideprotected 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));}@Overridepublic 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;}@Overridepublic 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();

}@Overridepublic 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";@Overridepublic 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;}

}

0 0
原创粉丝点击