zoukankan      html  css  js  c++  java
  • 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>

    效果:

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

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

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

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

  • 相关阅读:
    [npm]npm audit fix
    [javascript]中央定时器控制
    [javascript]并发模型与事件循环(Concurrency model and Event loop)
    [翻译][JavaScript] JavaScript 是不是一定是单线程的?
    [DOM][穿梭框][js]运用document.adoptNode方法,写出基础的穿梭框效果
    [document][DOM]document.importNode 与 document.adoptNode
    [DOM][document][进阶]DocumentFragment, document.createDocumentFragment()
    [Object][进阶]Object.defineProperty(),Object.defineProperties(),Object.getOwnPropertyDescriptor()
    [js][字符串]给字符串去空格(全角和半角)
    [vue]mixins在项目中的应用
  • 原文地址:https://www.cnblogs.com/afluy/p/3410958.html
Copyright © 2011-2022 走看看