ANDROID笔记: ActionBar(一)之ActionBar Tab

主类:

package com.example.android_actionbar;



import android.annotation.SuppressLint;

import android.app.ActionBar;

import android.app.ActionBar.Tab;

import android.app.Activity;

import android.app.FragmentTransaction;

import android.os.Bundle;



public class ActionBarTabActivity extends Activity implements

        ActionBar.TabListener {

    @SuppressLint("NewApi")

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        setContentView(R.layout.fragment);

        ActionBar actionBar = getActionBar();

        // 显示HOME

        actionBar.setDisplayShowHomeEnabled(false);

        // 显示HOME按键

        actionBar.setHomeButtonEnabled(false);

        // 显示APP名称

        actionBar.setDisplayShowTitleEnabled(false);

        // 设置mode

        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        actionBar.addTab(actionBar.newTab().setText("老师").setTabListener(this),

                0, true);

        actionBar.addTab(actionBar.newTab().setText("学生").setTabListener(this),

                1, false);

        actionBar.addTab(actionBar.newTab().setText("家长").setTabListener(this),

                2, false);



    }



    @Override

    public void onTabReselected(Tab arg0, FragmentTransaction arg1) {

        

    }



    @Override

    public void onTabSelected(Tab tab, FragmentTransaction transaction) {



        Bundle bundle = new Bundle();

        bundle.putString("data", tab.getText().toString());

        PersonFragment personFragment = new PersonFragment();

        personFragment.setArguments(bundle);

        transaction.replace(R.id.frame, personFragment);



    }



    @Override

    public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {



    }

}

PersonFragment类:

package com.example.android_actionbar;



import java.util.ArrayList;

import java.util.List;



import android.app.Activity;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;



import com.example.android_actionbar.pojo.People;



/**

 * 碎片

 * 

 * @author Administrator

 * 

 */

public class PersonFragment extends Fragment {

    private List<People> list = new ArrayList<People>();



    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        System.out.println("onCreate");

    }



    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

            Bundle savedInstanceState) {

        System.out.println("onCreateView");

        View view = inflater.inflate(R.layout.personlist, null);

        ListView listView = (ListView) view.findViewById(R.id.list_person);

        // 得到传递的数据

        String data = getArguments().getString("data");



        list.clear();

        if (data.equals("学生")) {

            list.add(new People("学生1", "男"));

            list.add(new People("学生2", "男"));

            list.add(new People("学生3", "女"));

        } else if (data.equals("老师")) {

            list.add(new People("老师1", "男"));

            list.add(new People("老师2", "女"));

            list.add(new People("老师3", "男"));

        } else if (data.equals("家长")) {

            list.add(new People("家长1", "女"));

            list.add(new People("家长2", "女"));

            list.add(new People("家长3", "男"));

        }

        listView.setAdapter(baseAdapter);

        return view;

    }



    @Override

    public void onAttach(Activity activity) {

        super.onAttach(activity);

        System.out.println("onAttach");

    }



    private BaseAdapter baseAdapter = new BaseAdapter() {



        @Override

        public View getView(int arg0, View convertView, ViewGroup arg2) {

            LayoutInflater inflater = LayoutInflater.from(getActivity());

            View view = inflater.inflate(R.layout.personlist_item, null);

            TextView textView = (TextView) view.findViewById(R.id.itemtextname);

            TextView textView2 = (TextView) view.findViewById(R.id.itemtextsex);

            // 得到数据

            People people = list.get(arg0);

            textView.setText(people.getName());

            textView2.setText(people.getSex());

            return view;

        }



        @Override

        public long getItemId(int arg0) {

            return arg0;

        }



        @Override

        public Object getItem(int arg0) {

            return list.get(arg0);

        }



        @Override

        public int getCount() {

            return list.size();

        }

    };

}

主类的布局文件:

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/frame"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >



</FrameLayout>

fragment的布局文件:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/listline"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >



    <ListView

        android:id="@+id/list_person"

        android:layout_width="match_parent"

        android:layout_height="match_parent" >

    </ListView>



</LinearLayout>

fragment的list_item文件:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >



    <TextView

        android:id="@+id/itemtextname"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" />



    <TextView

        android:id="@+id/itemtextsex"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" />



</LinearLayout>

效果:

ANDROID笔记: ActionBar(一)之ActionBar Tab

 

PS:使用actionbar的TAB时需要设置:

// 显示HOME
actionBar.setDisplayShowHomeEnabled(false);
// 显示HOME按键
actionBar.setHomeButtonEnabled(false);
// 显示APP名称
actionBar.setDisplayShowTitleEnabled(false);

以上三个使activity自身的bar消失.

// 设置mode
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

你可能感兴趣的:(Actionbar)